@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代码一样。

最新文章

  1. Bootstrap3 CSS样式基本用法总结
  2. Hibernate主键生成策略(转)
  3. 关于多线程情况下Net-SNMP v3 版本导致进程假死情况的跟踪与分析
  4. 高宽不定的div相对父div上下、左右居中
  5. Cookie API
  6. 微信小程序开发心得--动画机制
  7. 201521123010 《Java程序设计》第8周学习总结
  8. iOS中判断照片和相机权限
  9. IOS微信分享功能简单实现
  10. Cookie浅析
  11. JVM内存模型和面试题解析
  12. Eclipse调试多线程代码
  13. Hibernate小解惑.
  14. MySQL— 索引
  15. how to check the computer is 32 bit or 64bit in linux
  16. 数学还勉强管用,用代码还能画个canvas 仪表盘(含完整代码)
  17. 撩课-Web大前端每天5道面试题-Day8
  18. 推荐一个配置linux服务的网站
  19. maven手动添加jar(转)
  20. CentOS6X安装PHP5.5

热门文章

  1. 如何开启mysql计划事件
  2. Unity4.5版本DLL库名字问题
  3. php常用[字符串]函数
  4. jwplayer直播
  5. Delphi如何打开DBF数据库
  6. (java版)斐波那契数列
  7. addevent兼容函数 &amp;&amp; 阻止默认行为 &amp;&amp; 阻止传播
  8. java 使用cookie记录用户上一次访问的时间 记住 用户的 登录名
  9. pro7
  10. Bluetooth SDP介绍