@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)的更多相关文章

  1. javaweb学习--jsp

    阅读电子书<Java Web从入门到精通>密码:461c,学习JavaWeb基础知识.由于本人已有html基础,所以直接略过前面部分,进入jsp学习 jsp页面添加库引用,引入项目文件 引 ...

  2. 学习 JSP:第二步 创建一个JSP Web Project

    接上文 学习 JSP:第一步Eclipse+Tomcat+jre(配置环境) [创建新工程](Dynamic Web Project) 1.选择 "File-->New-->Dy ...

  3. 学习JSP篇:jsp简单介绍

    这几天开始学习JSP和Servlet,写些博客,记录自己的学习过程,算是自己从业开始的一个见证. 一.什么是JSP JSP的全称是Java Service Page,一种动态的网页开发技术,区别于静态 ...

  4. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. JavaWeb学习----JSP脚本元素、指令元素、动作元素

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. 新手学习JSP+Servlet笔记一

    作为一个新手,初次接触jsp,servlet,习惯了后台的开发,前台的知识一窍不通,利用闲暇时间,给自己补补,从MyEclipse开始. 安装好MyEclipse之后,没有安装程序的可以下载 http ...

  8. jsp学习--JSP运行原理,九大隐式对象和JSP常用标签

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  9. 学习jsp(3)

    HttpServletRequest和HttpServletResponse: response.setContentType("text/html;charset=UTF-8") ...

随机推荐

  1. Unity 中 使用c#线程

    使用条件   天下没有免费的午餐,在我使用unity的那一刻,我就感觉到不自在,因为开源所以不知道底层实现,如果只是简单的做点简单游戏,那就无所谓的了,但真正用到实际地方的时候,就会发现一个挨着一个坑 ...

  2. P1091 合唱队形

    水题 #include <bits/stdc++.h> using namespace std; const int maxn = 105; int main(int argc, char ...

  3. P1379 八数码问题

    aoapc上的八数码问题,在luogu上也有类似的题,p1379,经典题目,lrj给出了一个算法,同时给出了三种判重的方法.本来想用std::queue改写一下,但是出了各种问题,只好抄代码ac掉这道 ...

  4. delphi下TList的用法

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. C# 如何读取一行中的所有变量

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. Delphi 的绘图功能[1] - PolyBezier、PolyBezierTo

    双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 unit Unit1; interface uses Windows, Messages, SysUtils ...

  7. web项目中 集合Spring&使用junit4测试Spring

    web项目中 集合Spring 问题: 如果将 ApplicationContext applicationContext = new ClassPathXmlApplicationContext(& ...

  8. volatile in thread

    public class TestCalc { public static void main(String[] args) { class StoppableThread extends Threa ...

  9. Android项目框架之图片加载框架的选择

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 从Android爆发以后,自定义的控件如EditTextWithDelete.ActionBar.P ...

  10. 日志案例分析(PV,UV),以及动态分区

    1.实现的流程 需求分析 时间:日,时段 分区表:两级 PV UV 数据清洗 2015-08-28 18:19:10 字段:id,url,guid,tracktime 数据分析 导出 2.新建源数据库 ...