栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

JSP

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP

1.Servlet定义

Java Servlet或简称Servlet是在某些Web或应用程序服务器上运行的程序。
它们充当来自Web浏览器或HTTP客户端的入站请求
与HTTP服务器上存在的应用程序或数据库之间的中间层。

2.为什么使用Servlet

场景1-冗余的JSP:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    $Title$
  
  
    <%request.setAttribute("name","zhangsanfeng");%>

    <%=request.getAttribute("name")%>
  

结果 : 123

场景2-Servlet改造JSP:

创建Servlet

(1)servlet(包名)/HelloWorldServlet(servlet名)
src下创建个servlet(包名)文件夹,然后右击Create New Servlet,
创建一个Servlet = = >HelloWorldServlet

然后在web.xml 里web-app加
(2)web.xml


        HelloWorldServlet
        servlet.HelloWorldServlet


        HelloWorldServlet
        /HelloWorldServlet

两个servlet-name要相同,名字可以任意取。
servlet-class是src下的地址,全路径,包名加类名。

如果有第二个servlet可以在中间创建这两个,
也可以直接在下面写,但servlet-mapping一定在servlet下面。

然后在HelloWorldServlet里面写:

没有配tomcat需要导包tomcat 的 jsp-api.jar 和 servlet-api.jar
service等价于doPost和doGet

(3)HelloWorldServlet.java

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;

public class HelloWorld2Servlet extends HttpServlet {
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//request绑定数据
request.setAttribute("name","asdfg");
//转发
request.getRequestDispatcher("index.jsp").forward(request,response);
   }
}

快捷键自动补全:
alt + 回车 == 》introduce local variable
创建相应类型的变量

(4)index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


        ${name}


通过后台(Servlet)调用jsp
http://localhost:8080/HelloWorldServlet
结果 :asdfg

相对于之前的代码,省略了html和java混合使用。

3.Servlet的优势

专人专职:JSP负责显示,Servlet负责控制

4.创建Servlet的两种方式:

第一种方式 implements Servlet
(不用这种,用第二种,第一种了解就行)

核心要点:

Servlet生命周期:
(1)加载和实例化
(2)初始化:init() 【执行一次】
(3)服务:service() 【反复执行】
(4)销毁:destory() 【执行一次】

快捷键:alt + 回车 接口实现方法

步骤1:WorldServlet

如果没效果,把下面换成英文

public class WorldServlet  implements Servlet {
	//自定义
	public WorldServlet(){
        System.out.println("实例化。。。");
    }
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化...");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("处理请求和生成响应...");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("销毁...");
    }
}

步骤2:web.xml


        WorldServlet
        servlet.WorldServlet


        WorldServlet
        /WorldServlet

结果:
1实例化。。。
2初始化…
3(服务)处理请求和生成响应…
(每刷新一次页面就会出现一次)
3(服务)处理请求和生成响应…
3(服务)处理请求和生成响应…
点击stop
4销毁…

第二种方式 extends HttpServlet(企业专用)

最上面的案例

5.总结

JSP本质上是一个Servlet,JSP适合表示层开发,Servlet适合封装控制逻辑

----2021.10.16

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号