学习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") ...
随机推荐
- Nginx平滑重启
kill -HUP cat /usr/local/nginx/logs/nginx.pid`
- 图解SQL多表关联查询
图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习 内连接 左连接 右连接 全外连接 1. 查两表关联列相等的数据 ...
- 验证码识别 edge enhancement - 轮廓增强 region finding - 区域查找
Computer Science An Overview _J. Glenn Brookshear _11th Edition The task of understanding general im ...
- Python For Data Analysis -- Pandas
首先pandas的作者就是这本书的作者 对于Numpy,我们处理的对象是矩阵 pandas是基于numpy进行封装的,pandas的处理对象是二维表(tabular, spreadsheet-like ...
- php面向对象之__toString()
似曾相识,在php面向对象编程之魔术方法__set,曾经介绍了什么是魔术方法,这一章又介绍一个魔术方法__tostring(). __toString()是快速获取对象的字符串信息的便捷方式,似乎魔术 ...
- 【转】下载量最高的 100 个 Laravel 扩展包推荐
说明 Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态. 本文对 Packagist 上打了 Laravel 标签 的扩展包进行整理,截止到现 ...
- IOS 移除storyboard
我是IOS新手,都说storyboard是个好东西,但是我搞了一会始终没有搞懂,并且我觉得学习一门语言,使用类似以前网页三剑客这种所见所得工具,不太利于学习,所以我就想着移除storyboard 1: ...
- jquery easyui Combobox 实现 两级联动
具体效果如下图:
- 实例讲述PHP面向对象的特性;;;php中const与define的使用区别
php中const与define的使用区别 1.const:类成员变量定义,一旦定义且不能改变其值. define:定义全局常量,在任何地方都可以访问.2.define:不能在类中定义,而const可 ...
- SQL查询一周内过生日的用户
SELECT birthday, )) + '-' + )) + '-' + )) AS datetime) AS Nbirthday FROM CRM_Customer WHERE birthday ...