ssm学习过程,学习过spring ioc,现在来学下springmvc,说到springmvc,他是解决web项目的,这就不得不提到servlet。
servlet是java编写的服务端程序 (javax.servlet.*)。必须放在容器中才可以运行,比如tomcat/WebLogic。
servlet具有控制器和页面角色,有了jsp和动态页面技术后,servlet主要承担控制器角色。
1.页面角色
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("hello world,servlet我是加粗,是一个页面元素
");
out.close();
2. 控制器角色。model+jsp+servlet 构成 MVC架构模式
3.一次servlet请求过程
第一步:容器先加载Servlet类
第二步:容器实例化Servlet(Servlet无参构造函数执行)
第三步:执行init()方法(在Servlet生命周期中,只执行一次,且在service()方法执行前执行)
第四步:执行service()方法,处理客户请求,doPost()或doGet()
第五步:执行destroy(),销毁线程
servlet生命周期
1.在容器中的每个Servlet原则上只有一个实例
2.每个请求对应一个线程
3.多个线程可作用于同一个Servlet(这是造成Servlet线程不安全的根本原因)
4.每个线程一旦执行完任务,就被销毁或放在线程池中等待回收
1.把之前建立的spring项目,改成web项目。 建立webapp/WEB-INF/web.xml
2.打开项目配置,添加web,配置好web.xml路径,以及webapp路径。这样就是一个web项目了。
3. New-Servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "MyServlet2")
public class MyServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("111");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("hello world,servlet");
out.close();
System.out.println("22");
}
}
4.修改web.xml
MyServlet2
com.xx.MyServlet2
MyServlet2
/MyServlet2
5.添加tomcat
添加Artifact
配置 Application context
6.启动,完成第一个servlet