第一范文网 - 专业文章范例文档资料分享平台

《Java EE程序设计》1 (2)

来源:用户分享 时间:2020-06-18 本文由义无反顾 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

JNDIctx

JNDIctx /JNDIctx.do 服务器后台输出:

1、根据下面所提出的要求完善会话对象监听器应用案例(在线用户显示项目)。 (1)根据注释填写[1]?[10]完整程序。 (2)把1)?8)相应的地方写出注释。

(3)写出每个过滤器和监听器的作用,并画出主要的页面、Servlet访问流转的过程。 WebApplicationListener.java文件主要源码

public class WebApplicationListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { ServletContext application=event.getServletContext(); application.setAttribute(\ application.setAttribute(\ 注释1) 说明userAccessNum的作用 List userlist=new ArrayList(); //累计用户访问个数 application.setAttribute(\ } }

SessionAttribureListener.java文件主要源码

HttpSessionAttributeListener public class SessionAttribureListener implements [1]{//引入会话对象监听器接口 public void attributeAdded(HttpSessionBindingEvent event) { String name=event.getName(); String userid=(String)event.getValue(); HttpSession session=event.getSession(); ServletContext application=session.getServletContext(); [2]//获取该事件的ServletContesxt对象实例 if(name!=null&&name.equals(\ int usernum=(Integer)application.getAttribute(\ application.setAttribute(\ List list=(List)application.getAttribute(\ list.add(userid); } } public void attributeRemoved(HttpSessionBindingEvent event) { String name =event.getName(); String userid=(String)event.getValue(); HttpSession session=event.getSession(); ServletContext application=session.getServletContext(); if(name!=null&&name.equals(\

共 12 页 第 6 页

int usernum=(Integer)application.getAttribute(\ application.setAttribute(\ List list=(List)application.getAttribute(\ list.remove(userid); } } public void attributeReplaced(HttpSessionBindingEvent event) { String name =event.getName(); String userid=(String)event.getValue(); HttpSession session=event.getSession(); ServletContext application=session.getServletContext(); if(name!=null&&name.equals(%ute(\ int usernum=(Integer)application.getAttribute(\ application.setAttribute(\ List list=(List)application.getAttribute(\ 注释2)获取用户列表 list.add(userid); } } }

UserAccessNumCout.java文件主要源码

public class UserAccessNumCout implements ServletRequestListener { public void requestInitialized(ServletRequestEvent event) { ServletContext application=event.getServletContext(); Integer userAccessNum=(Integer)application.getAttribute(\ String webroot=application.getContextPath(); HttpServletRequest hsq=(HttpServletRequest)event.getServletRequest(); String uri=hsq.getRequestURI(); if(userAccessNum!=null&&(uri.equals(webroot+\ [3]//累计用户访问个数,并存到容器的userAccessNum属性中 application.setAttribute(\ } } }

SetCharacterEncodingFilter.java文件主要源码

public class SetCharacterEncodingFilter implements Filter { protected FilterConfig filterConfig; protected String encodingName; protected boolean enable; public SetCharacterEncodingFilter() { this.encodingName = \ this.enable = false; } public void init(FilterConfig filterConfig) throws ServletException {

共 12 页 第 7 页

this.filterConfig = filterConfig; }

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(\ response.setCharacterEncoding(\ chain.doFilter(request, response);//注释3)

他的作用是将请求转发给过滤器链上下一个对象。这里的下一个指的是下一个filter,如果没有filter那就是你请求的资源。 一般filter都是一个链,web.xml 里面配置了几个就有几个。一个一个的连在一起

} }

login.jsp文件主要源码

[4]

main.jsp文件主要源码

累积网站点击人数:<%=String.valueOf((Integer)application.getAttribute(\ 在线人数:<%[5]//输出在线人数%>
用户列表:
<%List list=(List)application.getAttribute(\ for(Object o : list){ out.println((String)o); out.println(\ } %>

LoginAction.java文件主要源码

public class LoginAction extends HttpServlet { private Connection cn=null; private String driverName=null; private String url=null; private String dbuser=null; private String dbpassword=null;

共 12 页 第 8 页

public void init(ServletConfig config) throws ServletException{ super.init(config); driverName=config.getInitParameter(\ url=config.getInitParameter(\ dbuser=config.getInitParameter(\ dbpassword=config.getInitParameter(\

try { Class.forName(driverName);

[6]//完成数据库连接

Connection cn = DriverManager.getConnection(url, user, password);

}catch(Exception e) { System.out.println(\取得数据库连接错误:\ } }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userid=request.getParameter(\ String password=request.getParameter(\

if((userid)!=null&&password!=null&&userid.trim().length()>0&&password.trim().length()>0) { String sql=\ boolean check=false; try { PreparedStatement ps=cn.prepareStatement(sql); ps.setString(1, userid); ps.setString(2, password); ResultSet rs=ps.executeQuery(); //bd if([7])rs.next() { check=true; } rs.close(); ps.close(); }catch(Exception e) { System.out.println(\数据库运行出错:\ response.sendRedirect(\ return ; } if(check) { HttpSession session=request.getSession(true); session=request.getSession(true); session.setAttribute(\ response.sendRedirect(\注释4)从定向到main.jsp,跳转到main.jsp }else{

共 12 页 第 9 页

response.sendRedirect(\ } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); //注释5)将请求转到doget()中执行 } public void destroy() { super.destroy(); try{ if(cn!=null&&(!cn.isClosed())) { cn.close(); cn=null; } }catch(Exception e) { System.out.println(\ } } }

LogoutAction.java文件主要源码

public class LogoutAction extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session=request.getSession(false); if(session!=null){ session.getServletContext().setAttribute(\session.getAttribute(\注释6)先从session中获取userid再放到context中 [8]//删除session将userid属性

session.removeAttribute(“userid”)

} response.sendRedirect(\ } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }

web.xml配置 WebApplicationListener 添加WebapplicationListener到listener中 SessionAttribureListener

共 12 页 第 10 页

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新工程科技《Java EE程序设计》1 (2)全文阅读和word下载服务。

《Java EE程序设计》1 (2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1085607.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top