学习jsp(2)
@Webservlet
具体见:http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html。
我折腾半天才发现,在web.xml里注册了,删除web.xml,就ok了。
HttpServlet详解:
http://www.cnblogs.com/panjun-Donet/archive/2010/02/22/1671290.html
这里需要注意的是:,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace(). 等方法的重载。
1.doGet
Get调用用于获取服务器信息,并将其作为响应返回给客户端。当经由Web浏览器,或者通过HTML、JSP直接访问Servlet的URL时,一般使用Get调用。Get调用在URL里显示正传送给Servlet的数据,这在系统的安全方面可能带来一些问题。比如说用户登录时,表单里的用户名和密码需要发送到服务器端,如果使用Get调用,就会在浏览器的URL里显示用户名和密码。
下面给出一个例子。使用doGet调用,那么在客户端的Form中必须指定调用的类型为get
<form action="/test/doget_servlet" method="get">
........
<input type="type" name="name">
..........
</form>
那么Servlet代码如下
1.import java.io.*;
2.import javax.servlet.*;
3.import javax.servlet.http.*;
4.
5.public class DoGetTestServlet extends HttpServlet
6.{
7. public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
8. request.setCharacterEncoding("gb2312");
9. response.setContentType("text/html;charset=gb2312");
10. PrintWtriter out=response.getWriter();
11. out.println("获得了以下的参数值:name=<br>"+request.getParameter("name"));
12. out.flush();
13.}
14.}
在doGetTestServlet中,通过request.getParameter()方法获得请求中的参数。部署时候,主要在web.xml中正确描述这个Servlet,并且知道URI映射为/doget_servlet,
<servlet>
<servlet-name>DoGetTestServlet</servlet-name>
<servlet-class>com.test.DoGetTestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DoGetTestServlet</servlet-name>
<url-pattern>/doget_servlet<url-pattern>
</servlet-mapping>
2.doPost
doPost用于客户端把数据传送到服务器端,它会有副作用。但是使用它的好处是可以隐藏发送给服务器端的任何数据。Post适合于发送大量的数据。
例如:
<form action="/test/dopost_servlet" method="post">
......
<textarea name="des" cols="50" rows="10"></textarea>
....
</form>
上例使用了textarea控件,客户端可以发送大量的数据
下面看看Servlet代码
import java.io.*;
2. import javax.servlet.*;
3. import javax.servlet.http.*;
4.
5. public class DoPostTestServlet extends HttpServlet{
6. public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
7. request.setCharacterEncoding("gb2312");
8. response.setContentType("text/html;chatset=gb2312");
9. PrintWiter out=response.getWriter();
10. out.println("获得以下的参数值:des=<br>"+request.getParameter("des"));
11. out.flush();
12.}
13.}
在处理Post请求的Servlet服务器时,它需要覆盖HttpServlet的doPost方法,doPost方法中的代码几乎和DoGetTestServlet中的doGet代码一样。
3.doPut
Put的调用和Post相似,它允许客户端把真正的文件存放在服务器上,而不仅仅是传送数据
4.doDelete
它与Put调用相似,它允许客户端删除服务器端的文件或者Web页面。它的使用也非常少。
5.doTrace
由容器调用以使此Servlet能够处理Trace请求。这个方法主要用于调试,它是不可以覆盖的方法
6.doHead
它用于处理客户端的Head调用,并且返回一个Response。当客户端只需要知道响应的Header时,它就发出一个Header请求。在这种请求下客户端往往关心响应的长度和响应的MIME类型
7.doOptions
它用于处理客户端的Options调用。通过这个调用,客户端可以获得此Servlet支持的方法,如某个Servlet覆盖了doPost方法,那么将返回:
Allow:POST,TRACE,OPTIONS,HEAD
在一般情况下不需要覆盖这个方法。
在处理Post请求的Servlet服务器时,它需要覆盖HttpServlet的doPost方法,doPost方法中的代码几乎和DoGetTestServlet中的doGet代码一样。
学习jsp(2)的更多相关文章
- javaweb学习--jsp
阅读电子书<Java Web从入门到精通>密码:461c,学习JavaWeb基础知识.由于本人已有html基础,所以直接略过前面部分,进入jsp学习 jsp页面添加库引用,引入项目文件 引 ...
- 学习 JSP:第二步 创建一个JSP Web Project
接上文 学习 JSP:第一步Eclipse+Tomcat+jre(配置环境) [创建新工程](Dynamic Web Project) 1.选择 "File-->New-->Dy ...
- 学习JSP篇:jsp简单介绍
这几天开始学习JSP和Servlet,写些博客,记录自己的学习过程,算是自己从业开始的一个见证. 一.什么是JSP JSP的全称是Java Service Page,一种动态的网页开发技术,区别于静态 ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JavaWeb学习----JSP脚本元素、指令元素、动作元素
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 新手学习JSP+Servlet笔记一
作为一个新手,初次接触jsp,servlet,习惯了后台的开发,前台的知识一窍不通,利用闲暇时间,给自己补补,从MyEclipse开始. 安装好MyEclipse之后,没有安装程序的可以下载 http ...
- jsp学习--JSP运行原理,九大隐式对象和JSP常用标签
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- 学习jsp(3)
HttpServletRequest和HttpServletResponse: response.setContentType("text/html;charset=UTF-8") ...
随机推荐
- SET ? DECLARE
http://dev.mysql.com/doc/refman/5.7/en/declare-local-variable.html http://dev.mysql.com/doc/refman/5 ...
- java获取类路径
String file = MessageTask3.class.getResource("").getFile(); File: public static final Stri ...
- 【转】Unity3D中Layers和LayerMask解析
http://blog.csdn.net/yupu56/article/details/50441151 Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0-31 ...
- 估值十亿美元、1.5亿用户,公司CEO却跑路了
转载这篇文章是觉得配图非常好玩的,文章的真实性有待证明 年收益3600万美元的.曾经拥有高口碑产品的Evernote,却正在把一手好牌打烂,距离IPO越来越远,屡屡被业界唱衰. "独角兽公司 ...
- VS下如何调试多线程
四步即可 1.打开多线程窗口,找到当前线程 此时,出现窗口如下: 2.右击任意位置,选中全部线程 3.停止全部线程 此时,线程状态如下: 4.单独启动当前线程:先单击当前线程,在点击启动按钮,如下红色 ...
- Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例
这个实例在windows.OS X.IOS和Android等平台运行正常.本文参考这个网站提供的方法:http://zarko-gajic.iz.hr/firemonkey-mobile-androi ...
- spring3 mvc:方法返回值的学习
新建后台代码用以测试返回类型,在这里我新建的如下: /** * 项目名称:Spring3mvc demo * Copyright ? 2010-2012 spartacus.org.cn All Ri ...
- 20145211 《Java程序设计》实验报告二:Java面向对象程序设计
实验要求 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容 单元测试 面向对象三要素 设计模式初步 练习 实 ...
- Mybatis在xml文件中处理大于号小于号的方法
第一种方法:用了转义字符把">"和"<"替换掉,然后就没有问题了. AND start_date <= CURRENT_DATE AND en ...
- C#资源释放
转自:http://www.cnblogs.com/psunny/archive/2009/07/07/1518812.html 深刻理解C#中资源释放 今天我的一个朋友看到我写的那篇<C#中用 ...