jsp实验5.docx
- 文档编号:18151154
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:22
- 大小:45.41KB
jsp实验5.docx
《jsp实验5.docx》由会员分享,可在线阅读,更多相关《jsp实验5.docx(22页珍藏版)》请在冰点文库上搜索。
jsp实验5
Javaweb应用编程基础实验报告
实验5:
Servlet实验
一、实验目的:
●理解Servlet、过滤器和监听器概念,掌握Servlet、过滤器和监听器的基本使用方法。
二、实验要求:
●使用专业开发工具MyEclipse编程。
●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交)。
三、实验内容:
1、用JSP编写用户登录页面,用Servlet和处理并在返回给客户端的页面上,显示登录时填写的用户名及密码。
2、用JSP编写发帖页面,用过滤器过滤帖子中的非法文字如脏话、下流词语(过滤掉的每个字符均用一个“*”代替),将过滤后的帖子内容在另一显示页面上输出。
3、应用监听器监听某个用户的登录。
当该用户登录时,在另一监控页面(假定是系统管理员的监控页面)上会出现相应提示信息。
四、实验过程中遇到的问题及解决手段:
在实验2的时候,过滤器的配置文件总是写错。
导致文件无法识别或无效,通过网上查找解决了问题。
五、程序源代码:
1.SessionServlet.javaweb.xml
SessionServlet.java
packagecom;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.Servlet;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
/**
*使用HttpSession管理会话的登录Servlet
*/
@WebServlet("/SessionServlet")
publicclassSessionServletextendsHttpServletimplementsServlet{
privatestaticfinallongserialVersionUID=1L;
/**
*@seeHttpServlet#HttpServlet()
*/
publicSessionServlet(){
super();
//TODOAuto-generatedconstructorstub
}
/**
*@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
response.setContentType("text/html;charset=GB2312");
PrintWriterout=response.getWriter();
out.println("");
out.println("
");out.println("
");out.println("
out.println("");
out.println("
");//获取会话对象
HttpSessionsession=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="http: //www.w3.org/2001/XMLSchema-instance"xmlns="xmlns: web="xsi: schemaLocation="id="WebApp_ID"version="3.0"> --ServerInfoServletdefinition--> --SessionServletdefinition--> 2.CheckFormFilter.javaEncoding.javaCheckForm.jspCheckFormOver.jspweb.xml CheckFormFilter.java packagecom; importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjdk.nashorn.internal.ir.RuntimeNode.Request; publicclassCheckFormFilterimplementsFilter{ protectedFilterConfigconfig; @Override publicvoiddestroy(){ //TODOAuto-generatedmethodstub } @Override publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse, FilterChainchain)throwsIOException,ServletException{ HttpServletRequestreq=(HttpServletRequest)request; HttpServletResponseresp=(HttpServletResponse)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; importjava.io.IOException; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; publicclassEncodingimplementsFilter{ protectedStringencoding=null; protectedFilterConfigconfig; @Override publicvoiddestroy(){ //TODOAuto-generatedmethodstub } @Override publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse, FilterChainchain)throwsIOException,ServletException{ HttpServletRequestreq=(HttpServletRequest)request; HttpServletResponseresp=(HttpServletResponse)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""http: //www.w3.org/TR/html4/loose.dtd">
过滤校验:
用户名: | |
内容: | |
CheckFormOver.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
您提交的数据:
校验结果!
web.xml
xsi="http: //www.w3.org/2001/XMLSchema-instance"xmlns="xmlns: web="xsi: schemaLocation="id="WebApp_ID"version="3.0">
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)