servlet 的接口的基本应用和filter简单实现
来源:互联网 发布:linux semaphore 编辑:程序博客网 时间:2024/05/21 19:49
1.在servlet 中ServletConfig:
java:ServletConfig c=this.getServletConfig(); String sheng=c.getInitParameter("sheng");System.out.println(sheng);
web.xml:<servlet> <servlet-name>ConfigServlet</servlet-name> <servlet-
class>com.jkx.web.servlet.ConfigServlet</servlet-class>
<init-param>
<param-name>sheng</param-name>
<param-value>yaan</param-value>
</init-param>
</servlet>
2.ServletContext :全局,只要不关服务器,数据都有效
java:ServletContext application=this.getServletContext();
String jdbcDriver=application.getInitParameter("jdbcDriver");
System.out.println(jdbcDriver);
String path=application.getRealPath("/i");//得到物理地址并拼接上
System.out.println(path);
String name=(String) application.getAttribute("name");
if(name==null)
{
application.setAttribute("name", "ls");//该代码在第一次使用时name不存在,运行一次后,debug一下可以看到name有值且关闭服务器后再打开仍旧有值
}
Set<String> set=application.getResourcePaths("/js");//列出本项目中指定文件下的文件名
for(String filename:set)
{
System.out.println(set);
}
web.xml:
<context-param>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
index.jsp
java:ServletConfig c=this.getServletConfig(); String sheng=c.getInitParameter("sheng");System.out.println(sheng);
web.xml:<servlet> <servlet-name>ConfigServlet</servlet-name> <servlet-
class>com.jkx.web.servlet.ConfigServlet</servlet-class>
<init-param>
<param-name>sheng</param-name>
<param-value>yaan</param-value>
</init-param>
</servlet>
2.ServletContext :全局,只要不关服务器,数据都有效
java:ServletContext application=this.getServletContext();
String jdbcDriver=application.getInitParameter("jdbcDriver");
System.out.println(jdbcDriver);
String path=application.getRealPath("/i");//得到物理地址并拼接上
System.out.println(path);
String name=(String) application.getAttribute("name");
if(name==null)
{
application.setAttribute("name", "ls");//该代码在第一次使用时name不存在,运行一次后,debug一下可以看到name有值且关闭服务器后再打开仍旧有值
}
Set<String> set=application.getResourcePaths("/js");//列出本项目中指定文件下的文件名
for(String filename:set)
{
System.out.println(set);
}
web.xml:
<context-param>
<param-name>jdbcDriver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
3.图片的排版和用图片实现连接
ImageServlet
package com.jkx.web.servlet;import java.io.IOException;import java.util.Set;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ImageServlet extends HttpServlet {private static final long serialVersionUID = 1L; public ImageServlet() { super(); // TODO Auto-generated constructor stub }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubServletContext application=this.getServletContext();Set<String> set=application.getResourcePaths("/image");//列出本项目中指定文件下的文件名for(String filename:set){System.out.println(set);}request.setAttribute("image", set);request.getRequestDispatcher("/ImageTest.jsp").forward(request, response);}}ImageTest.jsp
package com.jkx.web.servlet;import java.io.IOException;import java.util.Set;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ImageServlet extends HttpServlet {private static final long serialVersionUID = 1L; public ImageServlet() { super(); // TODO Auto-generated constructor stub }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubServletContext application=this.getServletContext();Set<String> set=application.getResourcePaths("/image");//列出本项目中指定文件下的文件名for(String filename:set){System.out.println(set);}request.setAttribute("image", set);request.getRequestDispatcher("/ImageTest.jsp").forward(request, response);}}地址栏输入:http://localhost:8080/DBconn/ImageServlet
4.简单拦截器的实现拦截器
web.xml
<filter> <filter-name>UserFilter</filter-name> <filter-class>com.jkx.web.filter.UserFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>UserFilter</filter-name> <url-pattern>/success.jsp</url-pattern> </filter-mapping> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UserFilter</servlet-name> <servlet-class>com.jkx.web.filter.UserFilter</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserFilter</servlet-name> <url-pattern>/UserFilter</url-pattern> </servlet-mapping>
UserFilter(Servlet页面)
package com.jkx.web.filter;import java.io.IOException;import java.io.PrintWriter;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.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class UserFilter extends HttpServlet implements Filter {String encoding=null;public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stub//解决乱码问题if(null!=encoding){request.setCharacterEncoding(encoding);response.setContentType(encoding);}chain.doFilter(request, response);HttpServletRequest req=(HttpServletRequest)request;HttpServletResponse res=(HttpServletResponse)response;PrintWriter out=response.getWriter();HttpSession session=req.getSession();//判断是否未登录页面String servletPath=req.getServletPath();String path = req.getContextPath();String basePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/";String url=basePath+"index.jsp";if(session.getAttribute("user")!=null){System.out.println(session.getAttribute("user"));chain.doFilter(request, response);}else{String message="你还没登录!";out.println("<script>alert('"+message+"');window.location.href='"+url+"';" +"</script>");}}public void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stubencoding=filterConfig.getInitParameter(encoding);}}
LoginServlet
package com.jkx.web.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.jkx.dao.UserDao;import com.jkx.po.User;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");response.setCharacterEncoding("utf-8");PrintWriter out =response.getWriter();String qq=request.getParameter("qq");String pass=request.getParameter("pass");UserDao userdao=UserDao.getIntance();User user=userdao.getUserByusernameAndPasswoed(qq, pass);if(user!=null){List<User> listuser=userdao.getUserList();request.setAttribute("userlist", listuser);HttpSession session=request.getSession();session.setAttribute("user", qq);request.getRequestDispatcher("/success.jsp").forward(request,response);return ; //结束语句}else{//request.getRequestDispatcher("/fail.jsp").forward(request,response);response.sendRedirect("/DBconn/fail.jsp");return ;}}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%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 'index.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="styles.css">--> <style type="text/css">*{padding:0;margin:0;font-family:"微软雅黑";font-size:14px;}#warp{width:900px;height:800px; margin:0 auto;}#yx{height:390px;width:340px;border:1px solid #0099ff;border-radius:6px;margin:80px auto;}#yx_h{width:340px;height:50px;border-bottom:1px solid #0099ff;background:#00cccc;}#yx_h .span1{display:block;height:50px;width:170px;float:left;line-height:50px;text-align:center;cursor:pointer;font-size:16px;}#yx_h .span1:hover{background:#339999;}#yx_h .span2:hover{background:#339999;}#yx_h .span2{display:block;height:50px;width:170px;float:right;line-height:50px;text-align:center;cursor:pointer;font-size:16px;}#yx_b{width:290px;height:262px;padding:24px;}#yx_b span{width:286px;height:36px;display:block;line-height:36px;}#yx_b span input{width:286px;height:36px;border:1px solid #0099ff;margin-top:20px;display:block;padding-left:10px;}#yx_b span .chbox{width:18px;height:18px;float:left;line-height:20px;}#yx_b span .fot{width:250px;height:36px;display:block;float:right;margin-top:12px;margin-left:10px;font-size:12px;}#yx_b span .sub{color:#fff;font-size:16px;background:#0099ff;cursor:pointer;border-radius:5px;}#yx_b span .sub:hover{background:#3399cc;}#yx_t{width:340px;height:50px;}#yx_t span{width:312px;height:20px;display:inline-block;text-align:right;padding-right:24px;color:#0099cc;}#yx_t span a{text-decoration:none;color:#0099cc;}#yx_t span a:hover{text-decoration:underline;} </style> </head> <body> <form action="LoginServlet" method="post"> <div id="warp"><div id="yx"><div id="yx_h"><span class="span1">快速登录</span><span class="span2">账号密码登录</span></div><div id="yx_b"><span><input type="text" placeholder="支持QQ号/邮箱/手机号登录" name="qq"/></span><span><input type="password" placeholder="QQ密码" name="pass"/></span><span><input type="checkbox" class="chbox"><span class="fot">下次自动登录</span></span><span><input type="submit" class="sub" value="登 录"/></span></div><div id="yx_t"><span><a href="javascript:;">忘记密码?</a> |<a href="javascript:;">注册新账号</a> |<a href="javascript:;">意见反馈</a></span></div></div></div></form> </body></html>
阅读全文
1 0
- servlet 的接口的基本应用和filter简单实现
- servlet 的接口简单应用和filter过滤 用户未登录
- servlet filter实现接口json请求的日志记录
- javax.servlet.Filter 的应用
- javax.servlet.Filter 的应用
- Listener Filter Servlet的应用
- Servlet Filter与Spring interceptor的区别和应用Servlet Filter与Spring interceptor
- Servlet Filter与Spring interceptor的区别和应用Servlet Filter与Spring interceptor
- Servlet Filter与Spring interceptor的区别和应用Servlet Filter与Spring interceptor
- Servlet Filter与Spring interceptor的区别和应用
- 简单的Filter实现
- servlet和filter的异同
- Filter和Servlet的区别
- servlet和filter的异同
- servlet和filter的比较
- Servlet 和Filter的生命周期
- Servlet 和Filter的生命周期
- Filter和Servlet的区别
- 51Nod 1125 交换机器的最小代价
- 稀疏矩阵 的 压缩存储 (十字链表形式)
- java中的静态代理和动态代理
- spark学习-29-源代码解析从start-all.sh脚本开始
- 【CUGBACM14级BC第34场 A】hdu 5190 Go to movies
- servlet 的接口的基本应用和filter简单实现
- 公众号, 订阅号, 服务号, 企业号, 应用号(小程序)都是些什么玩意儿, 有什么关系和区别?
- 前端工程的价值体现在哪里
- 【图像目标检测】Fast-RCNN
- C#中 dll文件放在子目录中的方法
- 最全Pycharm教程(5)——Python快捷键相关设置
- 如何理解Redis的'持久化'机制?
- 139. Word Break
- GetClientRect和GetWindowRect