Servlet
来源:互联网 发布:经纬度定位软件哪个好 编辑:程序博客网 时间:2024/05/17 08:13
一、什么是servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请湂(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间幂。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
二、Servlet作用
Servlet规范通过规定一个编程的框架来达到扩幕服务器功能的目的,采用请湂-响应模式提供基于Web的服务。当客户机发送请湂至服务器时,服务器帆请湂信息转发给
Servlet,Servlet处理请湂并生成响应内容并帆其传给Web服务器,然后再由Web服务器帆响应返回给客户端。
安全性,Servlet也有类型检查的特性,并且利用Java的垃圾回收与没有指针的设计,使得Servlet避免内存管理的问题。由于在Java的异常处理机制下,Servlet能够安全地处理各种错误,不会因为发生程序上逻辑错误而导致整体服务器系统的崩溃。例如,某个Servlet发生除以零或其他不合法的运算时,会抛出一个异常让服务器处理,如记录在Log日志中。
三、创建Servlet的过程
四、第一个Servlet例程
FirstServlet.java文件(第一种继承方式)
package servlet;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class FirstServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("-------------"+request.getCharacterEncoding());//编码 System.out.println("------------"+request.getContentType());//类型 System.out.println("-------------"+request.getContextPath());//路径 System.out.println("-------------"+request.getRemoteAddr());//地址 System.out.println("-------------"+request.getHeader("Referer"));//头文件 System.out.println("-------------"+request.getHeader("Accept-Encoding")); resJson(request, response);}public void resXml(HttpServletRequest request, HttpServletResponse response) throws IOException{response.setHeader("Content-Type","application/xml;charset=UTF-8");//改类型 response.setHeader("Content-encoding", "UTF-8"); SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd");//改时间 String st=d.format(new Date()); response.setHeader("Date",st); PrintWriter out = response.getWriter();out.println("<?xml version='1.0' encoding='UTF-8'?>");out.println("<四大名著>");out.println("<红楼梦>");out.println("<作者>");out.println("曹雪芹");out.println("</作者>");out.println("</红楼梦>");out.println("</四大名著>");out.flush();out.close();}public void resJson(HttpServletRequest request, HttpServletResponse response) throws IOException{response.setHeader("Content-Type","application/json;charset=UTF-8"); response.setHeader("Content-encoding", "UTF-8"); SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd"); String st=d.format(new Date()); response.setHeader("Date",st); PrintWriter out = response.getWriter();out.println("[{name:'程昱',sex:'男'},{name:'程昱1',sex:'男'}]");out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { this.doGet(request, response);}}
SendServlet.java文件(第二种继承方式)
package servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.GenericServlet;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SendServlet extends GenericServlet{@Overridepublic void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {// TODO Auto-generated method stub}}
servlet加载web.xml中
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <!-- 自动生成的编码 <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/servlet/FirstServlet</url-pattern> </servlet-mapping> --> <servlet> <servlet-name>xxx</servlet-name> <servlet-class>servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xxx</servlet-name> <url-pattern>/xx.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>MyHtml.html</welcome-file> </welcome-file-list></web-app>
MyHtml.html文件
<!DOCTYPE html><html> <head> <title>MyHtml.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <a href="./xx.do">链接</a> </body></html>
运行结果:
- Servlet
- servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- Servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- 第一次
- 心跳包机制
- YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
- HTML基础
- 信用卡之深度剖析
- Servlet
- 一种改进的中值滤波算法(张恒等)
- C++笔记2 数组和指针
- WAS7 nodeAgent无法启动 找不到指定文件
- 《思维导图》--读书笔记
- 华为薪资
- git读书笔记第一章
- oracle/plsql/异常
- VS2012及帮助(MSDN离线版)文档官网下载