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>
相关推荐
#### 第4讲:EL表达式与JSTL标签库 - **EL表达式**:介绍EL的基本语法及其在页面中的应用。 - **JSTL标签库**:学习使用JSTL标签简化页面开发流程。 #### 第5讲:MVC模式与过滤器 - **MVC模式**:理解Model-View-...
Servlet 2.5和JSP 2.1是Java服务器端开发的重要标准,它们构成了Java EE 5(也称为J2EE 5)的核心部分。这两个规范为开发动态Web应用程序提供了强大而灵活的框架。 Servlet 2.5规范是Servlet技术的第五个主要版本,...
课程的重点内容涵盖Web开发的各个方面,从前端设计到后端处理,包括但不限于Servlet基础、JSP技术、JavaBean、EL表达式、JSTL、Filter过滤器、Listener监听器等。此外,数据库技术方面,课程要求学生理解并掌握JDBC...
- JSTL提供了一系列标准标签,减少了脚本元素的使用,提高了可读性和维护性。 **Servlet** Servlet是Java的一个接口,用于扩展服务器的功能,处理HTTP请求。它们通常用于接收和响应来自客户端的请求,进行业务逻辑...
J2EE Web应用的目录结构通常包括`WEB-INF`目录,其中包含了`web.xml`配置文件、类文件和库文件。 **4.4 第一个Servlet HelloWorldServlet** 创建一个简单的Servlet示例,展示基本的Servlet使用方法。 **4.6 ...
7. **部署描述符**:在J2EE应用中,部署描述符(如web.xml)定义了应用的配置信息,如Servlet、过滤器、监听器的映射,以及安全和会话配置等。 8. **EJB(Enterprise JavaBeans)**:虽然描述中没有明确提及,但...
- **Servlet 2.4规范**:增强了过滤器和监听器功能,引入了表达式语言EL。 - **JSTL 1.1**:JavaServer Pages Standard Tag Library提供了更丰富的标签库。 - **JPA**:引入了ORM(对象关系映射)框架,简化了与...
实例可能包含JSP脚本元素、表达式语言(EL)、自定义标签库(JSTL)以及Model-View-Controller(MVC)设计模式的应用。 3. **EJB开发**:EJB是J2EE的核心组件,用于构建可扩展、安全和事务性的后端业务逻辑。实例...
6. **JSTL与EL表达式**:为了减少JSP页面中的Java代码,提高可维护性,项目可能使用了JSP Standard Tag Library (JSTL) 和Expression Language (EL)。JSTL提供了一系列预定义的标签,EL则允许在JSP页面中简洁地访问...
4. JSP:掌握JSP2.0语法、隐含对象、EL表达式、JSTL1.1和自定义标签,理解JSP与Servlet的关系。 5. JavaBean:了解JavaBean规范,学习事件模型和组件的属性、方法及事件处理。 6. XML:理解XML的语法,掌握DTD和...
- **EL与JSTL**:理解表达式语言(Expression Language)与JSP标准标签库(JSTL)的使用,提高代码可读性。 - **脚本元素**:知道scriptlet、声明、表达式和注释的用途。 4. **JDBC** - **数据库连接**:了解...
1. **Servlet 2.4规范**:更新了Servlet接口,增强了过滤器和监听器功能,提供了更灵活的会话管理,并对HTTP请求和响应对象进行了改进,提升了性能和可扩展性。 2. **JSP 2.0**:引入了表达式语言(EL),使得页面...
- JSTL(JavaServer Pages Standard Tag Library):一组标准标签库,用于简化JSP页面的开发。 2. **核心标签库**: - `<c:out>`:输出变量值。 - `<c:set>`:设置变量值。 - `<c:if>`:条件判断。 - `<c:...
6. **过滤器和监听器**:解释这两者的用途,如何配置和使用它们增强应用的功能和性能。 7. **JSP自定义标签**:如何创建和使用自定义标签,提高代码可读性和复用性。 8. **实战项目**:可能包含一些简单的示例项目,...
- **JSP**:JSP与Servlet的关系,EL表达式和JSTL标签库的应用,页面转换原理。 - **MVC模式**:理解Model、View、Controller的职责,Spring MVC框架的应用。 - **JNDI**:理解目录服务和Java命名与目录接口,用于...
而 JSTL(JavaServer Pages Standard Tag Library)是一组标准标签库,提供了各种功能,如循环、条件判断、XML 处理等,帮助减少 JSP 页面中的脚本代码,提升代码可读性和维护性。 18.如何在 J2EE 应用中实现安全...
4. 学习JSP,掌握2.0版本的语法、隐含对象、EL表达式、JSTL以及自定义标签。 5. 理解JavaBean的规范和事件模型,了解如何在Web应用中使用。 6. 了解XML语言,包括DTD和Schema的使用。 7. 深入学习Servlet,掌握HTTP...
- JSTL(JavaServer Pages Standard Tag Library):推荐使用标准标签库,替代自定义标签,提高代码的可维护性。 - 静态导出:JSP页面可以被编译为独立的静态HTML文件,提高了性能。 **3. EJB(Enterprise ...
本书深入探讨了Servlet和JSP的众多组件,其中包括自定义标签库(Custom Tag Libraries)、可用的新过滤器(filters)和流行的Servlet与JSP设计模式。自定义标签库能够帮助开发者创建可重用的代码组件,增强代码的...