一、Servlet概念
安装了tomcat了解到其实tomcat是一个容器,可以处理用户发送的请求(Request),之后会为请求做出一个响应(Response),此时用户只能请求一些现成的资源,容器直接返回给客户,如果要容器能接受用户传递的参数实现数据的交互,那么还要在容器有专门的程序实现这样的数据交互,这样的程序叫做服务器端小程序,被叫做Servlet。要进行实现servlet的编写需要继承一个抽象类HttpServlet,这个类是tomcat提供的,安装完tomcat之后就有该类可以使用了。
二、开发一个简单Servlet程序过程
1、创建一个动态项目(ServletProject)。
2、为工作项目添加tomcat服务
添加服务
项目部属到tomcat服务中
在所建的项目名上点右键 ,添加环境
3.开发Servlet程序
HttpServlet是一个抽象类,没有抽象方法,是一个模板设计模式的类,模板方法是service()。servlet负责处理的路径是由容器tomcat去分配的,但是在分配 之前需要进行配置,在web.xml文件中进行配置,该文件在webContent/WEB-INF下。
public class EmpServlet extends HttpServlet{ //取得业务层实现类对象 private IEmpService empservice=(IEmpService)ServiceFactory.getInstance(IEmpServiceImpl.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // String m= req.getMethod(); // System.out.println("处理的请求是"+m); String id=req.getParameter("id"); try { System.out.println(empservice.findEmpById(Integer.parseInt(id))); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // System.out.println("666888"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); String name=req.getParameter("username"); String pwd=req.getParameter("pwd"); // System.out.println("处理的请求是"+m); System.out.println("用户名是:"+name+",密码是:"+ pwd); } }
配置servlet的映射路径
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>MvcPro</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 在容器中配置出路径对应的servlet --> <servlet> <servlet-name>empServlet</servlet-name> <servlet-class>com.sxt.mvcpro.controller.EmpServlet</servlet-class> </servlet> <!-- 定义出上面的servlet处理的路径 这个路径叫做servlet的映射路径 --> <servlet-mapping> <servlet-name>empServlet</servlet-name> <url-pattern>/emp</url-pattern> </servlet-mapping> </web-app>
启动项目之前要关闭之前已经启动的tomcat,否则就出现端口被占用的情况。
浏览器中访问的路径名称是:主机名(域名/ip地址)+项目名+servlet的路径名 ,比如:http://localhost:8080/MvcPro/emp