您的位置:首页 > 其它

servlet 的接口简单应用和filter过滤 用户未登录

2017-09-12 07:48 411 查看
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 :全局,只要不关服务器,数据都有效

web.xml:

 <context-param>

    <param-name>jdbcDriver</param-name>

    <param-value>com.mysql.jdbc.Driver</param-value>

  </context-param>

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);
}
3.图片的链接(综合应用)

Servlet页面: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 stub
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
ServletContext applica
4000
tion=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);
}

}


jsp:ImageTest.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
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 'ImageTest.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">

</style>
</head>

<body>

<c:forEach var="image" items="${image }" varStatus="index">
<c:if test="${index.count==1}"><a href="http://www.baidu.com"></c:if>
<c:if test="${index.count==10}"><a href="http://www.baidu.com"></c:if>
<c:if test="${index.count==24}"><a href="http://www.baidu.com"></c:if>
<img src=".${image }" style="width: 100px;height: 100px"/>
<c:if test="${index.count%5==0}"><br></c:if>
<c:if test="${index.count==1 or index.count==10 or index.count==24}"></a></c:if>

</c:forEach>

</body>
</html>


4.filter简单实现(省略后台数据库的链接)

UserFilter:

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 stub
encoding=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 ; //����
}

}

// 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)
// {
// HttpSession session=request.getSession();
// session.setAttribute("user", user);
//// request.setAttribute("user", qq);//${user}
//// request.setAttribute("user", user);//${user.username}
// request.getRequestDispatcher("/success.jsp").forward(request,response);
//// request.getRequestDispatcher("http://www.baidu.com").forward(request,response);//������ת���ⲿ��Ŀ
//// response.sendRedirect("/DBconn/success.jsp");
//// response.sendRedirect("http://www.baidu.com");//����ת���ⲿ��Ŀ
// return ; //����
// }
// else
// {
//// request.getRequestDispatcher("/fail.jsp").forward(request,response);
// response.sendRedirect("/DBconn/fail.jsp");
// return ; //����
// }
//
//
// }

// 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)
// System.out.println("��¼�ɹ�");
// else
// System.out.println("��¼ʧ��");
//
// out.flush();
// out.close();
//
// }

// public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
// {
// response.setContentType("text/html");
// response.setCharacterEncoding("utf-8");
// System.out.println(request.getMethod());//��ô��ݷ�ʽ
// System.out.println(request.getRequestURI());
// System.out.println(request.getContextPath());
// String qq=request.getParameter("qq");
// String pass=request.getParameter("pass");
// System.out.println(qq+"\n"+pass);
// PrintWriter out =response.getWriter();
// out.println("dddddd �����<font color='red'>1111</font>");
//
// out.flush();
// out.close();
// }

}


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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: