? SERVLET开发步骤
? 1.准备工作
? 安装Tomcat服务
将Tomcat/lib/servlet-api.jar拷贝至自己工程/WebContent/WEB-INFO/lib目录中
? 2.实施并且部署servlet
? 1.创建一个java类
? 2.继承Httpservle
? 父类的方法必须删除(不要问为什么,不删会报错)
? 3.重写这个类中的doget()方法
? 4.配置Servlet
? 1.在web.xml中
? 1.添加servle标签(顺序不能改变)
? 配置:servle-name子标签
? 配置:servle-class子标签(包名+类名)
? 2.添加servle-mapping标签
? 配置servle-name子标签(name名同配置servlet标签中name相同)
? 配置url-pattern子标签,指代前端页面访问的路径
? 路径必须以/开头
? 2.在创建的类外注解
? @webServlet(“/指向前端的路径名”)
? 5.发送接收数据(doget()方法)
? 1.B2S
? 在servlet的doget中,使用HttpservletRequset中的getParameter()方法获取前端发送过来的数据
? String username = req.getParameter(“username”);
? String pwd = req.getParameter(“password”);
? getParameter方法中的参数名应该与form表单中的控件中的参数名保持一致,这样拿到的内容就是这个input的控件中的内容
? 遇到一个特殊情况,不知道前端发送的内容里面有哪些name,我们可以用req.getParameterMap方法来实现这个过程,该方法可以帮助我们获得请求中的所有参数
? 2.S2B
? 在servlet的doget中,使用HttpservletResponse中的getWriter()方法使用这个流向前端发送数据
? PrintWriter pw = resp.getWriter();
? pw.println(username);
? pw.println(pwd);
? 向前端发送数据出现乱码情况的解决方案
? resp.setContentType(“text/html;charset=utf-8”);以这种形式解决中文乱码问题
? 返回一个HTML或者*(jsp)的界面
? 1.重定向
? 通过resp.sendRedirect(“重定向的路径”);
? 浏览器发送了两次请求,浏览器的地址栏会发生变化
? 2.转发
? 通过req.getRequestDispatcher(“转发的页面”).forward(req, resp);
? 浏览器发送一次请求,浏览器的地址栏不会发生变化,还是接口的位置(另一个请求是服务器发出的)
? 3.通过Servlet直接向浏览器发送一个页面,而这个页面是由servlet直接生成的
? 优点:生成的html页面可以动态的添加数据
缺点:代码太过于复杂
? 概念
? 轻量级
? lite
? let
? 3.servlet生命周期
? 1.构造方法
? 1.如果没有配置load-on-startup=1则用户访问的时候创建Servlet
? 2.如果配置了load-on-startup则用户启动服务器,立刻创建对象
? 3.这个过程只执行一次,意味着Servlet在服务器中,只存在一个对象
? 2.初始化方法init
? 1.如果配置了init-param,我们会在init方法执行完成后使用Servlet中的getInitParameter(String)这个方法,来加载一下全局的参数:比如数据库配置
? 2.其他特点同构造方法
? 3.service方法
? 1.每次请求都调用一次
? 2.负责处理具体请求的过程,不如决定使用doget还是dopost方法
? 4.destroy方法
? 1.容器进程,正常关闭时,调用
? 2.容器重新部署项目时,调用
? 3.容器手动强制中断时,不调用
? 4.调用后构造方法和init方法可以再次被调用,也就是说着个对象被销毁了,可以再次创建了