刚上了两节课的Servlet,下面是我写的心得,请大家帮我看看

1.什么是Servlet----Java Servlet是一个专门用于编写网络服务器应用程序的Java程序,传统的从命令行启动的java应用程序不同,servlet由Web服务器或容器进行加载,这个容器必须包含支持Servlet的虚拟机2.Servlet 的功能:
a能够根据客户的请求创建并响应整个HTML Web页面,具有动态页面的性质。
b 可以与服务器上的其他资源进行通信
c 能够处理与多个Web客户端连接,接收来自多个Web客户端输入的信息
d:……3.优势:使用Servlet使得把编写网页代码的时候能够使得程序员只专注于代码部分的流程,而不用考虑外表到底用了哪种服务器,基于此也使得代码具有了可值的特性4.Servlet的工作体系以及生命周期。
1加载实例化,当客户端请求Servlet 时,Servlet容器会创建Servlet实例
2 初始化,init()此方法只会调用一次
3 请求处理,service()
4销毁 destroy();5.servlet 内部的流程来说。外部信息首先进入service(),用户端使用GET 或者POST方式提交。service()会自动判断使用对应的方法doGet() 或者 doPost(),无论是这哪种方法传入的都是HttpServletRequest 对象request,和HttpServletResponse对象response.这里常用的方法有getParameter(String name);主要是获得表单提交过来的数据。特别的是如果是多选按钮值getParameterNames(String name);
例题:
一般我们用一个类继承HttpServlet的时候实现的方法有doGet()和doPost();
由于经常使用的是post方式提交所以我们可以如以下方式写个servlet:
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class YouServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
/* 
body
*/
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request,response);
} }
❀特别注意:如果是用超链接的方式请求那么只有重写service()就行
6. servlet 必须要继承Servlet类或它的子类,通常是HttpServlet,否则就不能称为Servlet,servlet必须在web.xml中配置,它的作业主要是控制转发,需要结合MVC模式。
Servlet继承体系
 
配置Servlet  在WEB-INFO中的web.xml
 <servlet>
     <servlet-name>名称</servlet-name>
    <servlet-class>相对路径(包名+Servlet文件名)</servlet-class>
   </servlet> <servlet-mapping>
    <servlet-name>名称(必须与<servlet-name>中相同) </servlet-name>
   <url-pattern>/访问地址</url-pattern>
</servlet-mapping>
7 . servlet的使用方式直接在地址处就可以访问
地址栏的访问:http://localhost:8080/myWeb/YouServlet
超链接:<a href=”YouServlet”></a>8.还有就是解决中文乱码的问题
A:可以在server.xml中找到
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />把它改为
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
URIEncoding="UTF-8"
/>
B: 代码片段:
String pwd=request.getParameter("pwd");
PrintWriter pw=response.getWriter();
pwd=new String(pwd.getBytes("ISO-8859-1"),"UTf-8");
C:写一个过滤器
过滤器实现步骤
1实现Filter接口
2)实现doFilter()
3)传递过来链,放请求过去
4)在web.xml中注册配置9.Servlet转发和重定向的方式。
A客户端的重定向:window.location=”url地址”;
B 服务器的重定向
1:response.sendRedirect(“URL”);  
2:request.getRequestDisptcher(“URL”).forword(request,response) 3:getServletContext().getRequestDisptcher(“URL”).forword(request,response);
4:getServletContext().getNameedDispatcher(“URLS”).forword(request,response);