jsp中的使用笔记
jsp中的使用笔记
一.JSP的编译器指引与指令组件
1.编译器指示 <%@ 编译器指示 %>:告诉引擎如何处理其它的JSP网页
两个主要的指引是 page与include
? ? ?1)page:可以让你指定到哪里可以找到支持的Java类别这类的事
<%@ page import="java.util.Date" %>
? ? ? ? ? ? ?2)include:让你将你的内容分成几个可管理的组件,就像那些有表头或脚注的网页。所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页:
? ? ? <%@ include file="_SessionCheck.jsp" %>
?2. 声明 <%! 声明 %>:定义网页层的变量或函数
? ? ? ?? ? ?<%! int i=0; %>
?
<%!//树遍历private void tree(List<Article> articles, Connection conn, int id, int grade) {String sql = "select * from article where pid = " + id;Statement stmt = DB.createStmt(conn);ResultSet rs = DB.executeQuery(stmt, sql); try {while(rs.next()) {Article a = new Article();a.initFromRs(rs);a.setGrade(grade);articles.add(a);if(!a.isLeaf()) {tree(articles, conn, a.getId(), grade + 1);}}} catch (SQLException e) {e.printStackTrace();} finally {DB.close(rs);DB.close(stmt);}}%>?? ? ?3. 表达式 <%= 表达式 %>:在网页中输出表达式
? ? ? ??<%= i %>? ?
? ? ?4. 程序代码段/小型指令 <% 程序代码片段 %>
? ? ?5. 注释 <%-- 注释 --%>
二、从request对象中取得url中的信息
request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath()+request.getServletPath()
+request.getQueryString() == null ? "" : ("?" +request.getQueryString())
其中:schema:传输的协议
? ? ? ? serverName: 服务器名/ip地址
serverPort:服务端口
ContextPath: 项目名
? ? ServletPath: jsp/Servlet路径
? ? ?QueryString : 查询字段 url?后的
三、jsp验证用户是否已登录
?
_SessionCheck.jsp
<%String adminLogined = (String)session.getAttribute("adminLogined");if(adminLogined == null || !adminLogined.trim().equals("true")) {response.sendRedirect("login.jsp");return;} %>?四、html中的单双引号会被js过滤
1.处理方法1
在html中";表示的是双引号,'表示的是单引号,所以jsp中的处理方式是out.print(detail.getMaterialSizeCode().replaceAll(""",""").replaceAll("'","'"));
2.处理方法2
如果使用的是jstl,则处理的方式是
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
?value="${fn:escapeXml(fn:trim(cost.styledescription)) }"