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>


 

运行结果:

原创粉丝点击