当前位置:编程学习 > JS >>

JSP知识点总结

JSP(Java Server Page)
 JSP是服务器端运行的页面,JSP本就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。
 Jsp文件只需放在应用文件下就可以了。
 JSP例子:
 <html>
 <head><title>time</title></head>
 <body>
     <h1><%=new java.util.Date()%></h1>
 </body>
 </html>
 JSP运行过程
 1,JSP文件先要翻译成Java文件(Servlet),在tomcat中翻译后的java文件在tomcat下的work\Catalina\localhost中相应名字的应用目录里。
 2,编译Java文件
 3,运行.class文件
 Tomcat的全局配置文件
 在Tomcat下的conf目录中的web.xml是服务器全局的配置文件,其中要想关闭列表显示叫要把
 <init-param>
       <param-name>listings</param-name>
       <param-value>false</param-value>
 </init-param>
 Tomcat的管理员设置
 在tomcat下的conf目录中的tomcat-use.xml文件中可以配置tomcat的用户角色
 <tomcat-users>
   <role rolename="manager" description=""/>
   <role rolename="admin"/><!--设定角色的名字,admin是管理员,manager是项目管理-->
   <user username="manager" password="123" roles="manager"/><!--设定用户名密码,和角色-->
   <user username="admin" password="123" roles="admin"/>
 </tomcat-users>
 JSP的特点
 1,JSP不需要编译
 2,JSP不需要进行配置
 3,JSP本质上就是一个Servlet
 4,JSP是以静态页面为主的。
 
 JSP的语法格式
 <%=...%>表达式,写表达式时不要加上分号,表达式,翻译成Java代码也就是直接使用流输出,也就不能加分号了。
 <%! int a=0; %>声明,使用声明的变量,所创建的变量是在service方法体外,也就是翻译成实例变量,声明也可以声明内部类或者是方法的声明。
 <% if(a==0){ a=3;}%>代码片断,代码段会原样翻译。在代码段中声明的变量,就会被翻译的service的方法体中,也就是被翻译成局部变量。
 前三种JSP的语法也叫做JSP代码,以上的表示方法,都有与之相对应的xml表达形式,因为可读性较差,所以较少使用。
 <%@ ... %>JSP指令
 <%@page import="...,..."%>引入包
 <%include file="...."%>直接引入内容,这些内容会直接嵌入到页面中。
 JSP的注释
 <%--........--%>
 JSP指令和JSP动作(标准的JSP标签)
 JSP指令的语法
 <%@... ....%>
 <%@include file="...."%> 包含指令,包含指令会将要包含的文件代码原样输出到本页面(在翻译时把包含文件的内容引入并合并),不进行翻译,file属性制定要包含的文件的名字(注意要包含的文件的路径),这个指令可以实现页面的复用。
 注意:<%@include file=" "%>要包含的JSP文件中不能定义重名的变量,如果不使用包含指令,那么JSP中的最小转换单元就是JSP文件,使用了包含指令就会将多个jsp的结果合并到一起。
 <%@page ..%>页面指令
 <%@page import="..."%> 引入包 例:<%@page import="java.util.*,ent.*"%>(可出现多次)
 <%@page pageEncoding="GBK"%>设定页面显示的字符集
 <%@page contentType="text/html;charset=GBK"%>设置输出流的编码方式和文件格式。
 注意:输出的字符集编码方式要和页面显示的字符集相同,一般定义输出流的编码方式,注意以上两个页面指令在JSP中最好只出现一次。注意在请求中传送的参数的值是中文的话需要调用请求request的
 setCharacterEncoding("..")方法设置相应的编码方式,只适用于post请求,也可以通过Servlet的Filter来进行中文编码方式的处理。
 <%@page language="java"%>指定JSP的脚本语言,现在只能写java
 <%@page extends=".."> 指定翻译后代码类型的父类,最好不要使用这个指令
 <%@page session="true|false"%>指定是否自动创建Session,最好不自己指定,使用默认值
 <%@page buffer=".." autoflush="true|false"%>设置输出的缓存和是否自动刷新缓存,一般情况下都使用默认值,缓存的默认值为8KB。
 <%@page isThreadSafe="true|false"%>是否线程安全,默认为true,也就是线程安全,只使用默认值。
 <%@page info=".."%>设置页面信息,一般不用
 <%@page errorPage=""%>指定异常处理页面
 <%@page isErrorPage="true|false"%>设定本页面就是异常后跳转的页面
 <%@page isELIgnored="true|false"%>设定本页面是否忽略JSP2.0种EL表达式
 <%@taglib ..%> 标签库指令,用于引入自定义标签库
 JSP动作
 <jsp:... ...>
 <jsp:include page="..." flush=true|false> include动作是在翻译和编译后运行时进行响应的合并,也就是对应了Servlet中RequestDispatcher类的include(ServletRequest request, ServletResponse response)方法。
 include动作可以传递参数
 <jsp:include page="test.jsp">
        <jsp:param name="user" value=" ">
 </jsp:include>
 在使用参数时,可以用request内置对象来获取参数的值。
 <jsp:forward page="xxx/xxx.jsp">forward动作对应的是Servlet中RequestDispatcher类的forward(ServletRequest request, ServletResponse response)方法,也就是把请求进行转发。
 也可以写成
 <jsp:forward>
        <jsp:attribute name="page">xxx/xxx.jsp</jsp:attribute>
 </jsp:forward>
 这种写法等价于上面的写法。
 在使用Servlet的response的重定向sendRedirect(String location)方法在使用时要包含应用的路径,注意,重定向会放弃这个请求,并向服务器发送一个新的请求,但是响应对象还是一个。重定向是用来避免重复提交的。
 注意:对页面的刷新操作就会再一次运行程序,也就仿佛进行了再一次的提交一样,这也就是重复提交的问题,所以需要使用重定向来解决这个问题。
 <jsp:plugin  type="bean|applet" code="...">
        ...
 </jsp:plugin>
 jsp:plugin动作可以使页面上运行applet,或者是使用java代码。
 <jsp:useBean id="对象名" class="类全名"|type="类全名"(使用多态时使用)beanName="类全名" scope="page|request|session|application">
 jsp:useBean动作,可以通过这个动作来使用java代码,id就是变量名,clss和type的区别在于,使用type是不会创建对象,而只是会先查找如果有该对象就会使用,如果没有就会抛出异常,class在没有该对象存在时,则会创建新对象。scope是用来保存实例的空间范围,page、request、session、application,由小到大,默认为page。
 <jsp:setProperty name="对象名" property="属性名" value="属性值"/>
 直接指定Bean属性的值,必须类型一致。
 <jsp:setProperty name="对象名" property="属性名" param="from表单中的响应的参数名"/>
 用表单中指定的参数来为Bean属性赋值,系统会自动作类型转换。
 <jsp:setProperty name="对象名" property="属性名"/>
 用表单中和Bean属性同名的标单项来给Bean属性赋值,这样写只会为指定的属性赋值
 <jsp:setProperty name="对象名" property="*"/>
 这种方式会自动用表单中的同名参数来为Bean的所有属性赋值
 <jsp:setProperty name="对象名" property="属性名" value="<%= ...%>"/>
 使用表达式来为Bean的属性进行赋值
 <jsp:getProperty name="对象名" property="属性名"
补充:Web开发 , Jsp ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,