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>

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
原创粉丝点击