Servlet基础知识

                                                                        Servlet基础


  一、Servlet是啥?

            Servlet是用Servlet标准开发的java类,运行在服务器端; 它是控制层,处理来自jsp页面的请求,是前台和服务器中间的媒介。它依托于服务器,没有服务器便无法执行。

二、 实现一个Servlet的helloword

           1.创建Servlet的java类

public class HelloWorld extends HttpServlet {
	private String message;
	@Override
	public void init() throws ServletException {
		 message="hello word";
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html");
		PrintWriter out=resp.getWriter();
		out.println("

"+message+"

"); } private void destory(){

        创建类的时候需要继承HttpServlet 或者实现Servelt接口。然后就是继承/实现  3个方法。init();service();

destory() 当然实际应用,只需要操作init()和service()

    2.将该Servlet在web.xml中配置。目的是让jsp页面能找到Servlet, Servlet也能找到jsp

 	  
  
       HelloWord
       org.springframework.web.servlet.DispatcherServlet
       1
   
     
       HelloWord
       /
   
  
 	
 		HelloWorld
 		test.HelloWorld
 	
 	
 		HelloWorld
 		/HelloWorld
 	

    Url-patten作用:让请求方能根据该Url找到servelt名,servlet作用:根据servelt名找到处理类

    Url-pattern种类:

          1  *.XXX   交给核心处理

         2   /   默认Servlet  它会匹配所有的servlet,当然也可以自己写一个特定的配置文件,其他Servlet找不到的url,都通过该Servlet处理类处理。

          3   /*  这种是错的。无法找到 .jsp的页面

三、Servlet运行过程

客户端发送请求给wib服务器后:

1.web服务器检查是否创建,装载了该请求 对应的Servlet,如果没有,就创建Servlet,如果有了,就执行4

2.装载创建Servlet的唯一的实例对象

3.创建一个HttpServletRequest对象和。。。Response对象,调用Service方法将对象传入,执行。

4执行完毕,调用destory方法卸载servelt,服务器关闭。

四。线程安全问题。

为啥会有这个考虑?因为Servlet对象的单例模式设计的,客户端访问的Servlet,只创建一个对象来处理。处理多个不同的请求。

    不要在处理类中定义全局变量。可以在方法中定义变量。开发者已经将servlet方法都做成线程暗钻的了,在方法内使用变量是没问题的。

















你可能感兴趣的:(Java基础)