JSP语法学习笔记
1、修改JSP页面模版:
找到MyEclips安装目录,搜索“Jsp.vtl”,找到该文件修改编码,以及一些不需要用到的代码。
2、查找项目生成的Servlet文件路径:
查看当前项目父级目录搜索 .metadata -> .me_tcat ->work ->Catalina 即可在 子级目录找到servlet 翻译过后的代码。
3、JSP 页码全局异常页面配置,错误页码配置Page指令 IsErrorPage="true",则可获取异常信息
WebRoot/Web-INF/web.xml 配置
<error-page>
<!--exception-type 非必须配置节点-->
<exception-type>异常类型</exception-type>
<!--error-code 非必须配置节点,指定错误码跳转页码 如 404 ,500-->
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
4、include 指令:
实用方法:<%@ include file="/WEB-INF/head.jsp" %> ,file 对应文件路径区分大小写.
注意: include 为静太包含, 动态包括使用方法为:
<% request.getRequestDispatcher("/WEB-INF/head.jsp").include(request, response); %>
得到的效果如.NET的 response.write 会打乱页码结构
5、JSP 常用标签
5.1、 forward 跳转页码:
如:
<jsp:forward page="/01.jsp">
<jsp:param value="01" name="user"/>
</jsp:forward>
5.2 、include : 等价于<%@ include file="***" %>
如:
<jsp:include page="/WEB-INF/head.jsp"></jsp:include>
6、JSP映射配置:
在/WEB-INF/web.xml文件中做如下配置:
<servlet>
<servlet-name>rhythmk</servlet-name>
<jsp-file>/01.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>rhythmk</servlet-name>
<url-pattern>/rhythmk.html</url-pattern>
</servlet-mapping>
请求:http://loaclhost:8080/test/rhythmk.html 等效于 http://loaclhost:8080/test/01.jsp
7、JSP 页码
<% JAVA代码块 %>
<%! 定义方法 %>
<%-- java 代码级注释 --%>
8、Page 指令(<%@ page %>):
session: 是否开启Session 默认开启.
pageEncoding:指定页码编码格式.
import:导入java包, 多个包可以逗号分隔 import="包1,包2"也可以
<% import="包1" %>
<% import="包2" %>
isThreadSafe: 是否线程安全,默认"true"
Servlet 跳转 jsp
@WebServlet("/Hello")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("name",request.getParameter("name"));
request.getRequestDispatcher("Hello.jsp").forward(request,response);
}
}