设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 951|回复: 0
收起左侧

webx

[复制链接]
发表于 2018-1-3 14:02:37 | 显示全部楼层 |阅读模式
大家在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
想和兴趣相投的朋友们一起交流吗?那就来江苏万和计算机培训中心吧。在这里,你不仅能学到最前沿的web技术,还会结交新的朋友和老师。

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-24 07:27 , Processed in 0.049023 second(s), 7 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表