1.过滤器的使用
package com.comm;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class MyFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("-----destroy()");
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
System.out.println("-----doFilter()");
HttpServletRequest request = (HttpServletRequest)req;//封装客户端强求的是HttpServletRequest对象而不是ServletRequest,因此这里向下转型
HttpServletResponse response = (HttpServletResponse)resp;
HttpSession session=request.getSession();
Object obj=session.getAttribute("u");
List<String> path=new ArrayList<String>();
path.add("/index.jsp");
path.add("/userServlet");
String p=request.getServletPath();
//System.out.println("打印路径:"+p);
if(path.contains(p)){
chain.doFilter(request, response);
}else{
if(obj!=null){
chain.doFilter(request, response);
}else{
response.sendRedirect("index.jsp");
}
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("-----init()");
}
}
2.EL表达式和标准标签库的使用
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.dao.*,com.dao.impl.*,com.entity.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'msgList.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="style/style.css">
</head>
<body>
<%
Users u=(Users)session.getAttribute("u");
ArrayList<Message> mlist=(ArrayList<Message>)session.getAttribute("mlist");
%>
<div align="center">
<%-- 用户信息 --%>
<div style="width:500px">
当前用户${u.uname }
<a href="userServlet?op=exit">[登出]</a>
<a href="userServlet?op=tofasong">[给旧号码发短消息]</a>
<a href="post2.jsp">[给新号码发短消息]</a>
</div>
<h2 align="left" style="width:600px">我的短消息</h2>
<%-- 短消息列表 --%>
<div align="left" style="width:600px">
<form action="">
<table>
<tr>
<th><a href="javascript:document.myform.submit()">批量删除</a></th>
<th>内容</th>
<th>发送者</th>
<th>发送时间</th>
<th>状态</th>
<th>操作</th>
</tr>
<c:forEach var="b" items="${mlist}" varStatus="a">
<tr <c:if test="${a.index%2==0}">style="background-color: gray" </c:if>
<c:if test="${a.index%2!=0}"> style="background-color: #ffff00" </c:if>>
<td><input type="checkbox" name="cbox" value="${b.mid}"/></td>
<td>${b.mcontent}</td>
<td>${b.sendUname}</td>
<td>${b.mtime }</td>
<c:if test="${b.state eq 1}">
<td><img src="image/old.jpg"/></td><!-- 已读 -->
</c:if>
<c:if test="${b.state==0}">
<td><img src="image/new.jpg"/></td><!-- 未读 -->
</c:if>
<td>
<a href="messageServlet?op=seaByid&mid=${b.mid}">查看详情</a>
<a href="messageServlet?op=delmessage&mid=${b.mid}">删除</a>
</td>
</tr>
</c:forEach>
</table>
</form>
</div>
</div>
</body>
</html>
相关推荐
对于j2EE的简单web开发,其中有各种j2EE web开发过程中会使用到的技巧,如el表达式,jstl自定义标签,过滤器的使用等 通过这些来实现登录 注册 修改 删除 分页 等功能
.....Web_JSP_EL表达式 .....Web_JSP+Servlet_作用域(上下文) .....Web_JSP+Servlet_性能调优 .....Web_Cookie和Session .....Web_过滤器 .....Web_MVC设计模式 .....JDBC .....JDBC_各种数据库连接 .....XML_基础 ....
- 后端方面:JavaSe核心语法、MVC(controlle层、service、dao层)模型开发、jsp相关语法(jstl标签库、el表达式)、maven构建项目和管理jar包 - 前端方面:JavaScript(jquery)核心语法、AJAX异步刷新、Layui前端 UI...
FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...