(1)
引入的两种方式:
<%a include file=""%>
<jsp:include page="" flush="ture"/>
(2)
在jsp中,你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的传递.
<%! public String howBdaForm(HttpServletRequest req)
{
HttpSession ses=req.getSession();
....
}
%>
<%out.print("......");%>
<%= howBdaForm(request)%>
JSP中异常的处理:
方法一:
在出现异常的jsp页面增加如下代码:
errorpage:当该jsp页面出现问题时,转发到由errorpage所指向的页面进行异常的处理
<%@ page errorPage="/exception/error.jsp"%
如何处理异常
<%@ page isErrorPage="true"%>
isError属下表示在页面是否可以使用内置的Exce对象
方法二:
<error-page>
<exception-type></Exception-type>
<Location>
</error-page>
方法三
异常处理 errorpage实际上是一个转发 exception是jsp的内置对象,固定写法
显示异常必须在浏览器设置中去掉 显示友好的HTTp异常
JSP的四个作用域
page 一个页面 类型 java.lang.Object page对象对应java中的关键字this,他表示整个JSp页面
request 一次请求
session 一次会话
application 整个web应用的生命周期
在page作用域增加属性
pageContex.setAttribute();
转发标签:
<jsp:forward page=""/>
<jsp parm name="paramname" Value="paramValue"/>
</jsp:forward>
JSP中文乱码:
处理jsp中文乱码问题:
* 当请求方法是post时
* 在jsp文件的前面增加如下代码:
request.setCharacterEncoding("utf-8");
* 当请求方法是get时:
* 要先对中文汉字编码: URLEncoder.encode(str,"utf-8")
<%
String str="今天你好吗";
//编码:
%>
<a href="<%=request.getContextPath() %>
/luanma/getForm_get.jsp?name=<%=URLEncoder.encode(str,"utf-8") %>">测试get</a>
编码后的代码:
<a href="/itcast0505jsp01/luanma/getForm_get.jsp?name=%E4%BB%8A%E5%A4%A9%E4%BD%A0%E5%A5%BD%E5%90%97">
* 在服务器中配置中文字符的解码
*在tomcat服务器器的 D:/apache-tomcat-6.0.18/conf/server.xml文件中
<Connector port="808" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
这个标签中增加 URIEncoding="utf-8";
* 当请求方法是get时:也可以采用jstl标签库结合el表达式处理
* 要先对中文汉字编码:
<c:url value="/luanma/getForm_get.jsp" var="url">
<c:param name="name" value="${str}"></c:param>
</c:url>
<a href="${url}">测试getC</a>
* 在服务器中配置中文字符的解码
*在tomcat服务器器的 D:/apache-tomcat-6.0.18/conf/server.xml文件中
<Connector port="808" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
这个标签中增加 URIEncoding="utf-8";
isThreadSafe="true|false"
* 告诉JSP 容器,此JSP 网页是否能同时处理多个请求。默认值为true(多线程),
*单实例运行,每次客户端向服务器发送请求,服务不会创建一个新的servlet实例,使用已经存在的,不存在时才会创建
* 开发中引起并发问题.
* 如果此值设为false, 转义生成的Servlet会实现SingleThreadModel接口。
*多实例运行,每次客户端向服务器发送请求,服务都会创建一个新的servlet实例
JavaBean 必须有一个默认的无参数构造方法
设置参数的三种方式:
<jsp:setProperty name="beanInstancename"
{
property="propertyname" value="{String|<%= experssion %>}"
property="propertyname" param="ParamName"
property="propertyname" value="*"(必须和JavaBean的 属性相同)
}
/>