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)的更多相关文章

  1. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  2. javaweb学习总结(五)——Servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  3. Servlet开发详解

    一.Servlet简介 Servlet是sun公司提供的一门用于动态web资源的技术 sun公司在其API中提供了一个Servlet接口,用户若想开发一个动态web资源,需要完成两个步骤: 编写一个J ...

  4. JavaWeb---总结(六)Servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  5. javaWeb中servlet开发(5)——WEB开发模式:Mode I与Mode II

    1.servlet开发 2.model I模式 客户端通过访问JSP,调用里面的javabean,而通过javabean调用处理数据库的操作,javabean中有专门处理数据库的操作,数据库主要以DA ...

  6. javaweb学习之Servlet开发(二)

    javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...

  7. Servlet开发配置

    本文主要简单实践一下servlet开发相关开发 1.Servlet的创建 两种方法: 创建普通的java类,继承自HttpServlet类,在通过手动配置web.xml文件注册Servlet对象,比较 ...

  8. javaWeb中servlet开发——过滤器

    servlet开发--过滤器(filter) servlet有三种,分为简单servlet.过滤器servlet.监听servlet 简单servlet是作为一种程序所必须的开发结构保存的,继承htt ...

  9. java web 学习五(servlet开发1)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  10. javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)

    一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录, ...

随机推荐

  1. 一个小方法解决RGBA不兼容IE8

    原网页http://blog.csdn.net/leihope_/article/details/70158902 要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如 ...

  2. js跨域请求的5中解决方式

    跨域请求数据解决方案主要有如下解决方法: ? 1 2 3 4 5 JSONP方式 表单POST方式 服务器代理 Html5的XDomainRequest Flash request 分开说明: 一.J ...

  3. iOS Programming NSUserDefaults

    iOS Programming NSUserDefaults  When you start an app for the first time, it uses its factory settin ...

  4. nginx访问php程序相关配置

    server { listen *:80; charset utf-8; server_name roujiaxiaomowang.wanghaokun.com mowang.crucco.com; ...

  5. thinkphp5 404 file_put_contents 无法打开流:权限被拒绝

    如果你用TP的时间比较长,或者说你比较了解TP的人都会知道,TP的runtime它需要的权限是很大的,如果你只给一般权限肯定是不行的,通常都是给runtime权限:777: linux命令如下: cd ...

  6. Html 内联元素、外联元素 和 可变元素

    块元素(block element)一般是其他元素的容器元素 块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P".“form"这个块元素比较特殊,它 ...

  7. MySQL 中去重 distinct 用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  8. CE工具里自带的学习工具--第三关

    图解: 重复第5,6,7,8,9步,最终得到:

  9. win7 命令行禁用开启usb存储

    禁用: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor" /v Start /t reg ...

  10. JVM优化(下)

    14.Tomcat8优化之G1牢记收集器的测试结果以及小结: jmeter测试:(1)tomcat未做任何优化:(2)禁用AJP:(3)启用连接池:(4)设置最大线程数1000,初始线程数200:(5 ...