您的位置:首页 > 其它

servlet的简单使用

2015-12-02 21:00 120 查看
Servlet(Server
Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。

  在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。


与 Applet 的比较

相似之处:

* 它们不是独立的应用程序,没有 main() 方法。

* 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。

* 它们都有一个生存周期,包含 init() 和 destroy() 方法。

不同之处:

Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。

* Servlet 则没有图形界面,运行在服务器端。

如何使用???

针对这样一个action为login的post请求



1.在web.xml中需要设置一个名为login的servlet



2.创建servlet类



上面有一段红色圈的语句,主要防止获取来自表单属性值时候,中文乱码的情况。

比如要获取表单中用户填写的用户名,可以通过request.getParameter("name")获取。但是java Web开发中,request.getParameter()获取URL中文参数会乱码。

出现乱码的原因是因为:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

所以我们使用new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8"))来转换。

还有一个问题,为了使显示的html不乱码,应该在输出html代码时加上一句response.setContentType("text/html;charset=UTF-8");



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: