jsp实验5.docx
《jsp实验5.docx》由会员分享,可在线阅读,更多相关《jsp实验5.docx(21页珍藏版)》请在冰点文库上搜索。
![jsp实验5.docx](https://file1.bingdoc.com/fileroot1/2023-5/26/fada5bfd-da70-42d0-99a1-6c1e681a7554/fada5bfd-da70-42d0-99a1-6c1e681a75541.gif)
jsp实验5
jsp实验5
Javaweb应用编程基础实验报告
实验5:
Servlet实验
一、实验目的:
●理解Servlet、过滤器和监听器概念,掌握Servlet、过滤器和监听器的基本使用方法。
二、实验要求:
●使用专业开发工具MyEclipse编程。
●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交)。
三、实验内容:
1、用JSP编写用户登录页面,用Servlet和处理并在返回给客户端的页面上,显示登录时填写的用户名及密码。
2、用JSP编写发帖页面,用过滤器过滤帖子中的非法文字如脏话、下流词语(过滤掉的每个字符均用一个“*”代替),将过滤后的帖子内容在另一显示页面上输出。
3、应用监听器监听某个用户的登录。
当该用户登录时,在另一监控页面(假定是系统管理员的监控页面)上会出现相应提示信息。
四、实验过程中遇到的问题及解决手段:
在实验2的时候,过滤器的配置文件总是写错。
导致文件无法识别或无效,通过网上查找解决了问题。
五、程序源代码:
1.SessionServlet.javaweb.xml
SessionServlet.java
packagecom;
import
import
import
import
import
import
import
import
import
/**
*使用Session管理会话的登录Servlet
*/
@WebServlet("/SessionServlet")
publicclassSessionServletextendsServletimplementsServlet{
privatestaticfinallongserialVersionUID=1L;
/**
*@seeServlet#Servlet()
*/
publicSessionServlet(){
super();
//TODOAuto-generatedconstructorstub
}
/**
*@seeServlet#doGet(ServletRequestrequest,ServletResponseresponse)
*/
protectedvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
/**
*@seeServlet#doPost(ServletRequestrequest,ServletResponseresponse)
*/
protectedvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
response.setContentType("text/html;charset=GB2312");
PrintWriterout=response.getWriter();
out.println("");
out.println("
");
out.println("
");
out.println("
使用Session管理会话的登录页面");
out.println("");
out.println("
");
//获取会话对象
Sessionsession=request.getSession();
//从会话对象中读取数据
BooleanisLogin=(Boolean)session.getAttribute("isLogin");
if(isLogin==null){
isLogin=Boolean.FALSE;
}
Stringuser=request.getParameter("user");
Stringpassword=request.getParameter("pass");
if(isLogin.booleanValue()){
//会话对象中读取数据
user=(String)session.getAttribute(user);
password=(String)session.getAttribute(password);
out.println("
欢迎您,"+user+"!
");
out.println("
您的登录密码是:
"+password+"!
");
}elseif((user!
=null)&&(password!
=null)){
//会话对象中保存数据
session.setAttribute("user",user);
session.setAttribute("isLogin",Boolean.TRUE);
session.setAttribute("pass",password);
out.println("
欢迎您,"+user+"!
");
out.println("
您的登录密码是:
"+password+"!
");
}else{
out.println("
请在下面输入登录信息
");
out.println("out.println("
");out.println("
");out.println("
用户名: | ");out.println("
| ");out.println("
");out.println("
");out.println("
密码: | ");out.println("
| ");out.println("
");out.println("
");out.println("
| out.println("
"); out.println(" | ");out.println("
");out.println("
");
out.println("");
}
out.println("");
out.println("");
}
}
web.xml
xmlversion="1.0"encoding="UTF-8"?
>
xsi=xmlns=xmlns:
web=xsi:
schemaLocation=id="WebApp_ID"version="3.0">
ch
--ServerInfoServletdefinition-->
getSession
getSession
com.SessionServlet
--SessionServletdefinition-->
getSession
/getSession
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
2.CheckFormFilter.javaEncoding.javaCheckForm.jspCheckFormOver.jspweb.xml
CheckFormFilter.java
packagecom;
publicclassCheckFormFilterimplementsFilter{
protectedFilterConfigconfig;
@Override
publicvoiddestroy(){
//TODOAuto-generatedmethodstub
}
@Override
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
ServletRequestreq=(ServletRequest)request;
ServletResponseresp=(ServletResponse)response;
Stringname=request.getParameter("name");
Stringword=request.getParameter("word");
word=word.replace("日你","**");
word=word.replace("狗日的","***");
word=word.replace("你妹","**");
word=word.replace("操你","**");
word=word.replace("你妈的","***");
req.setAttribute("word",word);
chain.doFilter(request,response);
}
@Override
publicvoidinit(FilterConfigFilterConfig)throwsServletException{
//TODOAuto-generatedmethodstub
this.config=FilterConfig;
}
}
Encoding.java
packagecom;
publicclassEncodingimplementsFilter{
protectedStringencoding=null;
protectedFilterConfigconfig;
@Override
publicvoiddestroy(){
//TODOAuto-generatedmethodstub
}
@Override
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
ServletRequestreq=(ServletRequest)request;
ServletResponseresp=(ServletResponse)response;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request,response);
}
@Override
publicvoidinit(FilterConfigFilterConfig)throwsServletException{
this.config=FilterConfig;
this.encoding=FilterConfig.getInitParameter("Encoding");
}
protectedStringgetEncoding(){
returnencoding;
}
}
CheckForm.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
过滤校验过滤校验:
CheckFormOver.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
通过校验您提交的数据:
校验结果!
web.xml
xsi=xmlns=xmlns:
web=xsi:
schemaLocation=id="WebApp_ID"version="3.0">
ch2
EncodingFilter
com.EncodingFilter
CheckFormFilter
com.CheckFormFilter
EncodingFilter
/CheckFormOver.jsp
CheckFormFilter
/CheckFormOver.jsp
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
3.LogoutServlet.javaOnlineUserServlet.javaUser.javaUserList.javaLogin.htmlweb.xml
LogoutServlet.java
packagecom;
publicLogoutServlet(){
super();
}
publicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
response.setContentType("text/html;charset=gb2312");
Sessionsession=request.getSession();
Useruser=(User)session.getAttribute("user");
session.invalidate();
PrintWriterout=response.getWriter();
out.println("
退出登录");
out.println(user.getName()+",你已退出登录
");
out.println("重新登录");
out.println("");
out.close();
}
}
OnlineUserServlet.java
packagecom;
publicclassOnlineUserServletextendsServlet{
publicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{
request.setCharacterEncoding("gb2312");
Stringname=request.getParameter("user");
Stringpwd=request.getParameter("password");
if(null==name||null==pwd||name.equals("")||pwd.equals("")){
response.sendRedirect("login.html");
}
else{
Sessionsession=request.getSession();
Useruser=(User)session.getAttribute("user");
if(null==user||!
name.equals(user.getName())){
user=newUser(name);
session.setAttribute("user",user);
}
response.setContentType("text/html;charset=gb2312");
PrintWriterout=response.getWriter(