手机版

基于JSP的HTTP servlet详细介绍

时间:2021-11-21 来源:互联网 编辑:宝哥软件园 浏览:

HttpServlet首先回顾一下上一节提到的类结构图:

我们可以看到,HttpServlet继承了GenericServlet,但它也是一个抽象类,不能直接使用,只能继承。HttpServlets中常用的方法有两种:doGET void doget (http servlet请求请求,http servlet响应响应)抛出servlet异常,ioexception。当浏览器通过get访问时,调用此方法。Ostvoid doPOST (http servlet请求请求,http servlet响应响应)抛出servlet异常,ioexception当浏览器在POST模式下访问时,调用此方法。这两个函数的内部处理方法与上一节介绍的GenericServlet.service()函数基本相同。其他HTTP请求也有对应的方法:方法getdoget()postdoPost()head dohead()putdoput()delete dodelete()

HttpServletRequest

doget()和doPost()函数的两个参数分别是HttpServletRequest和HttpServletResponse对象。HttpServletRequest接口代表一个浏览器请求,您可以通过这个类获取浏览器发送到服务器的任何信息。对于PHP程序员来说,这个类有点类似于$_GET、$_POST、$_SERVER等几个变量的内容。其常用方法如下:getparameter string getparameter(字符串名称)获取指定变量名名称对应的参数值。该方法实际上是父接口javax.servlet.ServletRequest的方法.如果是GET请求,获取查询字符串后的参数,POST请求获取表单中的参数。类似于PHP的$_GET和$_POST数组。getparametervaluestring[]getParametervalues(string name)此方法类似于getparameter()。当您想要获取将返回多个值的表单属性(如input type="check ")时,应该使用此方法。GETMethodString GETMethodString()返回字符串“get”或“POST”。GetURIstringgetrequesturi()获取请求的uri(不包括查询字符串)。相当于PHP的$_SERVER['REQUEST_URI']。getservlet path string getservlet path()获取servlet的路径。相当于PHP的$_SERVER['PHP_SELF']。GetpathinnostringgetPathInfo()获取路径信息。相当于PHP的$_SERVER['PATH_INFO']。setcharactencodingvoid setcharacter encoding(字符串new)设置请求的编码。当你需要处理汉字时,你必须用这个方法设置正确的字符代码,否则你将无法正确阅读浏览器发送的文本。有很多有用的方法可以让你自己参考接口文档。

HttpServletResponse

http servlet响应接口用于控制服务器发送给客户端的内容,相当于PHP的echo、header等功能。setcontent type void setcontent type(string type)设置返回值的类型。通常的HTML内容可以设置为‘文本/HTML;Charset=UTF-8 ',等等。而动态生成的图片可以设置为‘image/gif’等。在输出汉字之前,一定要用这个方法指定输出的字符编码。相当于用PHP写标题('内容类型: image/gif ')。当servletoutputstream servletoutputstream getoutputstream()抛出ioexception向客户端发送二进制数据时,需要通过此方法获取输出流。Getwriterprintwriter getwriter()在向客户端发送文本数据时引发ioexception,需要通过此方法获取输出流。

示例程序

上一节创建servlet时,我们老师变成了Java代码,然后添加到web.xml的Servlet部分,其实Servlet可以直接在web.xml的Servlet部分构建,Eclicpse会自动帮助我们生成Java代码。这一次,我们将设置一个表单提交者,通过一个HTML表单提交数据,然后读取Servlet中的数据并显示出来。首先,右键单击网络内容目录,选择新建-HTML,并创建一个名为htmlpost.html的新HTML文档。下一步是选择一个HTML模板,直接使用默认值。然后编辑htmlpost.html,参考这一节的源代码。下载源代码:httppost _ jb51net.zip右键单击部署描述符中的Servlet,选择新建-Servlet。

根据下图,在Java包处输入包名com.idv2.learnjsp,在类名处输入类名HttpPost,点击下一步。

在Servlet映射的配置界面中,输入适当的描述。请注意下面的网址映射,这是用于从浏览器访问Servlet的网址。

下一步是选择新创建的类的属性,通常是默认的。然而,我们的Servlet只需要处理POST方法,所以我们只需要在下面的重载列表中选择doPost。

最后点击Finish完成Servlet的建立,Eclipse会自动在Java代码的src目录下生成HttpPost.java文件的框架。编辑java代码,可以参考下面的源代码下载。实际上,http set _ jb51 net . zip的主要内容是通过getParameter或getParameterValues方法获取客户端提交的数据。代码片段如下;复制代码如下://字符集请求. setcharacter encoding(' utf-8 ');//从表单中获取数据out.println(' li用户名: ' request . getparameter(' username ');out . println(' lipassword : ' request . getparameter(' password '));Out.println(' li确认密码: ' request . getparameter(' conf pass '));//获取复选框字符串interest[]=request . getparameter values(' interest ')的表单选项;出去。println(' lih obbies : br/');如果(利益!=null){ for(int I=0;一、兴趣.长度;I){ out . println(interest[I]' br/');} }

版权声明:基于JSP的HTTP servlet详细介绍是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。