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
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>
相关文章推荐
- Servlet课程0425(四) Servlet实现简单用户登录验证
- 一个简单的用户登录接口asp实现
- Web应用中防止用户重复登录的简单实现方法
- 新浪、QQ OAuth2.0接口应用及简单DZ!NT登录整合
- android开发,以记住用户登录密码为例说明SharedPreferences的简单应用
- Servlet——简单用户登录实例+http协议解析
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录
- 一个简单的用户登录接口
- 新浪、QQ OAuth2.0接口应用及简单DZ!NT登录整合
- Web应用中防止用户重复登录的简单实现方法
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(一)
- 新浪、QQ OAuth2.0接口应用及简单DZ!NT登录整合
- 笔记之Servlet的会话管理技术(cookie、session)(应用:用户自动登录、防表单重复提交)
- 用户登录中Cookie的简单应用
- servlet初步,简单的登录验证并显示用户名称
- Perl CGI 一个简单的用户登录验证应用
- Servlet——简单用户登录实例+http协议解析
- eclipse servlet简单的用户登录
- SpringMVC用户登录和拦截器简单应用增删改查
- android开发,以记住用户登录密码为例说明SharedPreferences的简单应用