一、jsp注释
<!--html注释--> <%-- java注释--%>
区别:java注释可阻止Java代码执行而html注释不能
二、<% %>与<%! %>的区别
<%%>里面的Java代码当jsp被翻译成servlet时,Java代码在service方法里面,而<%!%>里面的Java代码在service外面
三、jsp几个重要的内置对象
request,response,pageContext,session,application(代表当前web应用)是ServletContext的对象
outJspWrite的对象 out.println();
四、与属性相关的方法
1)ObjectgetAttribute()获取属性
voidsetAttribute(String name,Object o);设置属性
removeAttribute(Stringname);
2)pageContext:属性的作用域范围仅限于当前jsp页面
request:作用域限于同一个请求
session:作用域限于一次会话
application:作用域限于当前web应用
五、转发与重定向
请求转发方式代码:
1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象
调用getRequestDispatcher()需要传入转发的地址
2.调用HttpServletRequest的forward(request,response)进行请求的转发
Stringpath="testServlet";
RequestDispatcherrequestDispatcher = request.getRequestDispathcer("/"+path);
requestDispather.forward(request,response);
2)请求的重定向的代码
Stringpath = "testServlet";
response.sendRedirect(path);
请求转发与重定向的区别:
① 请求的转发:地址栏是初次发出的请求的地址
请求的重定向:地址栏不再是初次发出的请求,地址栏为最后响应的那个地址
②请求转发:在最终的servlet中,request对象和中转的那个request是同一个对象
请求的重定向:在最终的servlet中,request对象和中转的那个request不是用一个对象
③请求转发:只能转发给当前web应用资源
请求重定向:可以重定向到任何资源
④请求的转发:/ 代表的是当前web应用的根目录
请求的重定向:/ 代表的是当前web站点的根目录
六、jsp指令:page include taglib
page指令:
import属性 导入类包 <%@ page import="包"%>
session属性 设置当前页面session是否可用 session = "true"|"false"
errorpage属性 设置当前页面发生错误时跳转的页面 errorpage = "/error.jsp" 其中/代表当前web应用的根目录
isErrorPage属性 当前页面是否为错误页面 isErrorPage="true"|"false" 当为true时 exception隐藏变量可以使用 用来抛出异常
contentType属性 指定jsp页面的响应内容 实际调用的是 response.setContentType("text/html;charset=UTF-8");
通常,对于jsp页面而言取值均为text/html;charset=UTF-8 charset指定返回的页面的字符编码是什么
pageEncoding属性 指定当前jsp页面的字符编码 通常和charset一致
isELIgnored属性指定是否可以使用EL表达式
include指令
file属性 <%@ includefile="a.jsp" %> 这是静态引入
<jsp:include page=" "></jsp:include> 动态引入
<jsp:forward page=" "></jsp:forward> 请求转发
tips:
除了上述的可以在page指令中申明错误页面外还可以在配置文件web,xml中申明具体如下
<error-page>
<!--指定出错的代码:404 500 -->
<error-code>500</error-code>
<location>/WEB-INF/error.jsp</location>
</error-page>
七、中文乱码问题
(1)jsp页面中文乱码——显示中文乱码 设置charset与pageEncoding一致且都支持中文此外还需保证浏览器编码与代码一致
(2)获取中文参数值乱码
①post请求:
取值前调用request.setCharacterEncoding("需要的编码");
②get请求:
修改Tomcat的server.xml文件 具体再百度