大家在web学习中会遇到各种各样的问题,那么万和IT教育梳理一些web的学习笔记给大家学习学习。Servlet 如果要用Java程序生成动态Web页面 那么该Java程序必须遵循Servlet规范
所以要实现Servlet接口(小服务)
Serv --- Service
let --- 小东西 例子: @WebServlet(name="Hello", urlPatterns={"/hi", "*.do"}, loadOnStartup=1)public class Hello implements Servlet { private List<String> list = new ArrayList<>(); @Override public void destroy() { // 当服务器准备销毁Hello类对象时会自动调用该方法 - 善后 } @Override public ServletConfig getServletConfig() { return null; } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig arg0) throws ServletException { // 该方法是服务器创建了Hello类对象后自动调用的方法 - 初始化 // System.out.println("Hello对象被创建了!!!"); list.add("苹果"); list.add("香蕉"); list.add("橘子"); list.add("西瓜"); list.add("柚子"); list.add("草莓"); } // 第一个参数代表了客户端发送给服务器的请求 // 第二个参数代表了服务器发送给客户端的响应 @Override public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException { resp.setCharacterEncoding("utf-8"); PrintWriter writer = resp.getWriter(); writer.write("<html>"); writer.write("<head>"); writer.write("<meta charset='utf-8'>"); writer.write("</head>"); writer.write("<body>"); writer.write("<h1>今日推荐水果:<h1>"); writer.write(list.get((int) (Math.random() * list.size()))); writer.write("</body>"); writer.write("</html>"); writer.close(); } } Hello类实现了Servlet接口因此是一个可以部署在服务器上运行的小服务
这也就意味着服务器会创建Hello类的对象
小服务的工作模式通常是单实例多线程 部署Servlet: WEB-INF/ · web.xml <servlet> <servlet-mapping> · lib · classes @WebServlet · urlPatterns · loadOnStartup servlet是单实例 多线程 Servlet正确用法: 作为控制器(Controller) · 1.处理用户请求并调用相应的业务逻辑 o getParameter(String) · 2.将数据绑定到适当的作用域中 o setAttribute(String, Object) · 3.跳转或重定向到某个页面 o getRequestDispatcher(String) § forward(req, resp) o sendRedirect(String) 方法 destroy()
当服务器准备销毁Hello类对象时会自动调用该方法 - 善后 init()
该方法是服务器创建了Hello类对象后自动调用的方法 - 初始化 service(ServletRequest req, ServletResponse resp)
第一个参数代表了客户端发送给服务器的请求
第二个参数代表了服务器发送给客户端的响应 service方法 service方法里面只做三件事情
1.处理用户的请求
2.绑定数据(通常跟请求绑定)
3.跳转到JSP页面(用数据替换模板中的站位符) getRequestDispatcher 拿到请求派发器 servlet上下文 ServletContext代表了当前正在运行Web项目 JSP 当小服务完成了对用户请求的处理之后应该跳转到一个模板页面
同时将获得的数据或者处理的结果传给这个模板页面
这里的模板页面就是JSP(Java Server Page)
将数据和请求绑定到一起 然后跳转到模板页面(result.jsp) JSP正确用法: 作为视图(View) · 不处理任何的业务逻辑只负责显示数据 应用服务器(Servlet容器) · Apache Tomcat · Redhat JBoss / WildFly · Oracle Weblogic · IBM Websphere
|