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)) }"