实验1servlet实验

上传人:1666****666 文档编号:38649221 上传时间:2021-11-08 格式:DOC 页数:10 大小:439.50KB
收藏 版权申诉 举报 下载
实验1servlet实验_第1页
第1页 / 共10页
实验1servlet实验_第2页
第2页 / 共10页
实验1servlet实验_第3页
第3页 / 共10页
资源描述:

《实验1servlet实验》由会员分享,可在线阅读,更多相关《实验1servlet实验(10页珍藏版)》请在装配图网上搜索。

1、毕业论文沈阳理工大学应用技术学院JavaWeb程序设计实验实验题目: Servlet编程设计 院 系: 信息与控制学院 专 业: 计算机科学与技术 班级学号: 11301234 学生姓名: 张森 指导教师: 靳新 成 绩: 2013 年 4 月 20 日沈阳理工大学应用技术学院实验报告实验一 Servlet编程设计【开发语言及实现平台或实验环境】Windows系统,JDK,myEclipse开发环境,Tomcat服务器 【实验目的】1、熟悉Servlet的基本概念2、掌握Servlet的工作原理3、掌握servlet的生命周期4、掌握Servlet处理表单数据的编程方式5、掌握Servlet会

2、话管理的编程设计【实验内容】1、编写一个Servlet处理表单的程序,基本要求:(1)客户端以HTML表单方式向服务器提交数据的方法;(2)提交方法采用Post方法;(3)表单中涉及到各种常用控件;(4)使用相应方法获取表单数据2、程序实现功能如图所示:注意:项目名为LoginServletProject,表单文件名为Login.html,获取表单的Servlet名为LoginServlet。 Login.html LoginServlet.java3、程序功能提升要求:(1)在表单的“建议”中使用FCKeditor实现编辑器功能;(2)如果输入无效参数,使用JSValidation验证框架对

3、表单中每个选项的内容进行有效性验证。如图: 【代码实现】1、Login.htmlLogin.html!- window.onload = function() var oFCKeditor = new FCKeditor(advise);oFCKeditor.BasePath = /LoginServletProject/fckeditor/;oFCKeditor.ReplaceTextarea(); -潜在用户调查姓名: EMAIL: 年纪:小于1818-2526-40大于40编程时间:1年内1-2年3年以上所使用的操作系统:win xpwin 2000/2003linu

4、xfreeBSDmac osother使用的编程语言:CC+C#PYTHONJAVAVBDEPHI建议: var oFCKeditor = new FCKeditor(advise); oFCKeditor.BasePath = /LoginServletProject/fckeditor/; oFCKeditor.Height = 200; oFCKeditor.Width = 700; oFCKeditor.ToolbarSet = Default; oFCKeditor.Create(); 2、LoginServlet.java import java.io.IOException;im

5、port java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet public LoginServlet() super();public void destroy() super.dest

6、roy(); 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;charset=

7、utf-8);PrintWriter out = response.getWriter();request.setCharacterEncoding(utf-8);String username = request.getParameter(username);String email = request.getParameter(email);String age = request.getParameter(age);String time = request.getParameter(time);String os = request.getParameterValues(os);Str

8、ing language = request.getParameterValues(language);String advise = request.getParameter(advise);out.print(姓名:+username);out.print();out.print(email: +email);out.print();out.print(年龄:+age);out.print();out.print(编程时间:+time);out.print();out.print(使用的操作系统:);for(int i = 0;ios.length;i+)out.print(os

9、i+   );out.print();out.print(使用的编程语言:);for(int s = 0;slanguage.length;s+)out.print(languages+   );out.print();out.println(建议:+advise);out.flush();out.close();public void init() throws ServletException 【思考题】1、如何修改Tomcat端口号?在tomcat文件conf文件夹下的server.xml文件,更改port端口号,默认为8080

10、端口。 2、说明在Tomcat中,tomcat-user.xml文件的作用。 用于配置Tomcat使用的用户名,密码等信息3、如何在web.xml中配置一个编写好的Servlet?需要指定: 配对名 servlet类名 配对名 /请求的url 4、说明Servlet类的结构。GET请求就是用户在浏览器的地址栏里输入一个地址、在网页上点击连接或产生一个没有定义方法的HTML表单后产生的请求。Servlets还能轻松处理表单的提交(POST),关于处理表单提交我们将在后面几部分谈到。 import java.io.*; import javax.servlet.*; import javax.se

11、rvlet.http.*; public class SomeServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / 用 request 读取http信息头(如cookie) / 和HTML表单数据 (如用户输入和提交的数据) / 用response指定http响应 和http信息头 / (如指明信息的类型、设定cookie). PrintWriter out = r

12、esponse.getWriter(); / 用 out输出内容到浏览器 不管是用doGet还是doPost方法,servlet都要用到HttpServlet扩展类。这些方法可分为两类:HttpServletRequest和HttpServletResponse。HttpServletRequest含有获得表单数据、HTTP信息头等信息的方法。 HttpServletResponse则包含指明HTTP响应 (200, 404,等。)、信息头(Content-Type, Set-Cookie, 等。)的方法,更重要的是你能使用PrintWriter方法向客户端输出信息。注意doGet和doPos

13、t方法会抛出两个异常,所以必须在定义里包含他们。要用到PrintWriter、HttpServlet和HttpServletRequest, HttpServletResponse方法还必须分别引入java.io、javax.servlet和javax.servlet.http。 一般来说,doGet和doPost是被service方法调用的,但有时候你可能想越过service方法而直接使用自己定义的service方法,比如定义一个既能处理GET也能处理POST请求的servlet。 5、说明Servlet的生命周期。Servlet的生命周期是由servlet的容器来控制的。分为3个阶段:初始

14、化阶段(init)、运行阶段(run)、销毁阶段(destroy)。一、 init初始化阶段步骤:1) Servlet容器加载servlet类,把它的. Class文件中的数据读到内存中。2) Servlet容器创建servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。此外servlet容器还会使得servletConfig对象与当前的web应用的servletContext对象关联。3) Servlet容器创建servlet对象。4) Servlet容器调用servlet对象的init(ServletConfig config)方法。通过初始化步

15、骤,创建了servlet对象和servletConfig对象,并且servlet对象与servletConfig对象关联,而servletConfig对象又与当前对象的servletContext对象关联。当servlet容器完成servlet后,servlet对象只要通过getServletContext()方法就能得到web应用的servletContext对象。初始化的情况:1) 当web应用处于运行阶段时,特定的servlet被客户端首次请求访问。2) 在web.xml文件中为servlet设置了元素servlet1servlet.servlet103) 当web应用被重新启动时,we

16、b应用中的所有servlet会在特定的时间被重新初始化。二、 run1) 在这个阶段sevlet可以随时响应客户端的请求。当servlet容器接到访问特定的servlet请求时,servlet容器会创建针对与这个请求的servletRequest和servletResponse对象,然后调用service()方法,并把这两个对象当做参数传递给service()方法。Service()方法通过servletRequest对象获得请求信息,并处理该请求,再通过servletResponse对象生成响应结果。2) 【不管是post还是get方法提交,都会在service中处理,然后,由service

17、来交由相应的doPost或doGet方法处理,如果你重写了service方法,就不会再处理doPost或doGet了,如果重写sevice()方法,可以自己转向doPost()或doGet()方法】 注:当servlet容器把servlet生成的响应结果发送给客户后,servlet容器会销毁servletRequest和sevletResponse对象。三、 destory 当Web应用被终止时,servlet容器会先调用web应用中所有的servlet对象的destroy()方法,然后在销毁servlet对象。此外容器还会销毁与servlet对象关联的servletConfig对象。 在de

18、stroy()方法的实现中,可以释放servlet所占用的资源。如关闭文件输入输出流,关闭与数据库的连接。6、说明在Servlet中如何处理接受参数的乱码问题。servlet中时常要接收jsp页面传过来的参数,它也要进行一次编码转换,转换方式是,在接收参数的方法内,接收参数之前加上:request.setCharacterEncoding(gb2312);这句话,是专门处理页面传过来的乱码处理问题,保证在这里接收时,能接收到正确的中文。而还有一名话,也是要加的:response.setContentType(text/html; charset=gb2312);这句话,就是专门处理在servl

19、et里,当参数经过处理后,要传到客户端显示时,要保证传送的是正确的中文。这两句话,都得写在servlet里。7、如何在Servlet中使用Cookie对象用到的类 javax.servlet.http.Cookie构造cookie 的方法 : new Cookie(键,值)构造函数如下:Cookie(java.lang.String name, java.lang.String value)把cookie发送给客户端HttpServletResponse.addCookie(javax.servlet.http.Cookie)取得客户浏览器的cookie,返回的是数组HttpServletRe

20、quest.getCookies()getComment/setComment 获取/设置Cookie的注释。getDomain/setDomain获取/设置Cookie适用的域。一般地,Cookie只返回给与发送它的服务器名字完全相同的服务器。使用这里的方法可以指示浏览器把Cookie返回给同一域内的其他服务器。注意域必须以点开始(例如),非国家类的域(如.com,.edu,.gov)必须包含两个点,国家类的域(如,.edu.uk)必须包含三个点。getMaxAge/setMaxAge获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭

21、浏览器之前有效,而且这些Cookie不会保存到磁盘上。若生存时间为负值,代表浏览器关闭Cookie即消失。生存时间为0,代表删除Cookie,生存时间为正数,代表Cookie存在多少秒。getName/setName获取/设置Cookie的名字。本质上,名字和值是我们始终关心的两个部分。由于HttpServletRequest的getCookies方法返回的是一个Cookie对象的数组,因此通常要用循环来访问这个数组查找特定名字,然后用getValue检查它的值。getPath/setPath获取/设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所

22、有页面。这里的方法可以用来设定一些更一般的条件。例如,someCookie.setPath(/),此时服务器上的所有页面都可以接收到该Cookie。getSecure/setSecure获取/设置一个boolean值,该值表示是否Cookie只能通过加密的连接(即SSL)发送。getValue/setValue获取/设置Cookie的值。如前所述,名字和值实际上是我们始终关心的两个方面。不过也有一些例外情况,比如把名字作为逻辑标记(也就是说,如果名字存在,则表示true)。8、如何设定Cookie对象的有效期。 Cookie cookie=new Cookie(cookieName, Test_Content); cookie.setMaxAge(10); /存活期为10秒8

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!