Servlet开发(3)
Servlet开发
Servlet过滤器:
主要是对访问主页的用户进行过滤,通过登录系统进入的用户可以看到主页内容,在session中存在currentuser。
可以对此进行判断:
package com.java1234.web;
import java.io.IOException;
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.HttpSession; public class Loginfilter implements Filter { @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void doFilter(ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain FilterChain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)ServletRequest;//将ServletRequest强制转化为HttpServetRequest
HttpSession session=request.getSession();//获取sessin(如果用户登录就存在session)
Object o=session.getAttribute("currentUser");//获取currentUser对象
String path=request.getServletPath();//获取登录路径
if(o == null && path.indexOf("login")< 0){
/*服务器内部跳转 - -> 没有登录不能能访问主页*/
request.getRequestDispatcher("Login.jsp").forward(ServletRequest, ServletResponse);
}else{
FilterChain.doFilter(ServletRequest,ServletResponse);
}
} @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub } }
Loginfilter.java
配置类似于 Servlet :
</web-app>
<filter>
<filter-name>Loginfilter</filter-name>
<filter-class>com.java1234.web.Loginfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Loginfilter</filter-name>
<url-pattern>/login</url-pattern>
</filter-mapping>
</web-app>
Servlet监听器:
监听web事件;如application,session,request。
写一个监听session的例子:
首先当用户登录时,设置session值,这时候会添加属性,监听到。。。
其次注销的时候,删除session值,这时候是删除属性,监听到。。
so
代码如下:
package com.java1234.listener; import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent; public class SessionAttributeListener implements HttpSessionAttributeListener{ @Override
public void attributeAdded(HttpSessionBindingEvent HttpSessionBindingEvent) {
// TODO Auto-generated method stub
System.out.println("添加的属性名:"+HttpSessionBindingEvent.getName()+"属性值:"+HttpSessionBindingEvent.getValue());
} @Override
public void attributeRemoved(HttpSessionBindingEvent HttpSessionBindingEvent) {
// TODO Auto-generated method stub
System.out.println("删除的属性名:"+HttpSessionBindingEvent.getName()+"属性值 :"+HttpSessionBindingEvent.getValue());
} @Override
public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub } }
SessionAttributeListener.java
退出登录的java代码:
package com.java1234.web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LogoutServlet extends HttpServlet{ /**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request,response);
} @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
//清除session
request.getSession().invalidate();
response.sendRedirect("Login.jsp");
}
@Override
public void destroy() {
// TODO Auto-generated method stub }
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub }
}
LogoutServlet.java
配置web.xml
<!-- 添加监听器 -->
<listener>
<listener-class>
com.java1234.listener.SessionAttributeListener
</listener-class>
</listener>
<!-- 设置logout的servlet -->
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>com.java1234.web.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
web.xml
启动登录------>注销
运行结果

至此ok了。。
Servlet开发(3)的更多相关文章
- java web学习总结(五) -------------------servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- javaweb学习总结(五)——Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- Servlet开发详解
一.Servlet简介 Servlet是sun公司提供的一门用于动态web资源的技术 sun公司在其API中提供了一个Servlet接口,用户若想开发一个动态web资源,需要完成两个步骤: 编写一个J ...
- JavaWeb---总结(六)Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- javaWeb中servlet开发(5)——WEB开发模式:Mode I与Mode II
1.servlet开发 2.model I模式 客户端通过访问JSP,调用里面的javabean,而通过javabean调用处理数据库的操作,javabean中有专门处理数据库的操作,数据库主要以DA ...
- javaweb学习之Servlet开发(二)
javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...
- Servlet开发配置
本文主要简单实践一下servlet开发相关开发 1.Servlet的创建 两种方法: 创建普通的java类,继承自HttpServlet类,在通过手动配置web.xml文件注册Servlet对象,比较 ...
- javaWeb中servlet开发——过滤器
servlet开发--过滤器(filter) servlet有三种,分为简单servlet.过滤器servlet.监听servlet 简单servlet是作为一种程序所必须的开发结构保存的,继承htt ...
- java web 学习五(servlet开发1)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)
一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录, ...
随机推荐
- vue2.0 动态切换组件
组件标签是Vue框架自定义的标签,它的用途就是可以动态绑定我们的组件,根据数据的不同更换不同的组件. <!DOCTYPE html> <html lang="en" ...
- ansible API(开发应用)
7. ansible API(开发应用) 官网链接
- vue项目设置每个页面的title
1.在项目目录下安装vue-wechat-title 2.在main.js中 使用vue-wechat-title 3.在router的配置中设置 4.在每个vue页面中加入 <div v-we ...
- Android Bitmap详细介绍(3)
package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...
- 开源敏捷测试管理& 开源BUG跟踪管理软件itest(爱测试) V3.3.0隆重发布
v3.3.0 下载地址 :itest下载 码云源码地址 https://gitee.com/itestwork/itest 开源中国 itest项目地址 https://www.oschina. ...
- BZOJ 1711 吃饭dining/Luogu P1402 酒店之王 拆点+最大流流匹配
题意: (吃饭dining)有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享 ...
- [Luogu] P4838 P哥破解密码
题目背景 P哥是一个经常丢密码条的男孩子. 在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码. 题目描述 定义一个 ...
- HDU - 4514 湫湫系列故事——设计风景线(并查集判环)
题目: 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. 现在已经勘探确定了n ...
- 我能考虑到的数组(老)方法就这些了(es5)
代码注释都写的很清楚了 关键字:斐波那契数组.二维数组.多维数组(矩阵)... <!DOCTYPE html> <html lang="en"> <h ...
- linux学习笔记 磁盘存储之磁盘的基本组成结构