网站程序实现原理-jsp技术(一)——jsp简介及原理

jsp技术(一)jsp简介

JSP的全称是JavaServerPages。 与servle技术一样,它是SUN定义的一种用于开发动态Web资源的技术。 JSP实际上是一个Servlet。

jsp=html+java

html:静态内容

servlet:小型服务器端应用程序。适合编译java逻辑代码。 如果编译网页内容,工作量会相当巨大。

jsp:适合编辑输出动态内容,但不适合编辑java逻辑。

jsp的原理

(1)当客​​户第一次请求JSP页面时,JSP引擎会通过预处理将JSP文件中的所有静态数据(HTML文本)和动态数据(Java脚本)转换为Java代码。 这个转换工作其实是非常直观的。 对于 HTML 文本,使用 out.println() 方法简单包装,对于 Java 脚本,仅保留或简单处理。

网站程序实现原理-jsp技术(一)——jsp简介及原理

(2) JSP引擎将生成的.java文件编译成Servlet类文件(.class)。 对于Tomcat服务器,生成的类文件默认存放在work目录下。

(3)将编译好的类对象加载到容器中,并根据用户的请求生成HTML格式的响应页面

执行JSP网页时网站程序实现原理,一般可以分为两个时期:翻译时期(TranslationTime)和请求时期(RequestTime)。 翻译期间,JSP网页被翻译成Servlet类,然后编译成class文件; 请求期间网站程序实现原理,Servlet类执行完毕后,将响应结果发送给客户端。

jsp的一个小案例

网站程序实现原理-jsp技术(一)——jsp简介及原理

案例描述:本案例利用jsp技术和servlet技术实现了一个简单的网页登录模型。 主要由三个页面组成,登录页面、dologin页面、成功页面。 首先我们使用jsp来实现。

登录页面实现的代码如下:

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

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="/day01_00_jsplogin/doLogin.jsp" method="post">
            用户名:<input type="text" name="userName"/><br/>
            密码:<input type="password" name="pwd"/><br/>
            <input type="submit" value="登录"/><br/>
    </form>
</body>
</html>

我只在login.jsp页面做了一个简单的登录表单,然后转发到dologin.jsp进行处理。

网站程序实现原理-jsp技术(一)——jsp简介及原理

下面是dologin.jsp页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%
      //获取表单数据额
      String userName = request.getParameter("userName");
      String pwd = request.getParameter("pwd");
      //处理业务逻辑
      if("tom".equals(userName)&&"123".equals(pwd)){
            request.getRequestDispatcher("/success.jsp").forward(request, response);
      }else{
            response.sendRedirect("/day01_00_jsplogin/dologin.jsp");
      }
      //分发转向
     %>

dologin完成判断后,会分发并重定向到成功页面。 以下是success.jsp页面的代码。

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

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    欢迎你:<%
        String userName = request.getParameter("name");
        out.print(userName);
     %>
     <a href="/day01_00_jsplogin/login.jsp">跳到主页</a>
</body>
</html>

网站程序实现原理-jsp技术(一)——jsp简介及原理

由此我们实现了一个简单的登录页面,将其部署到tomcat,然后测试该页面,如下所示:

最后我们可以修改为使用servlet进行控制,将dologin操作写入servlet代码中,如下:

package com.itheima.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.SingleThreadModel;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DoLoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //获取表单数据
        String userName = request.getParameter("userName");
        String pwd = request.getParameter("pwd");
        //处理业务逻辑
        if("tom".equals(userName)&&"123".equals(pwd)){
            request.getSession().setAttribute("name", userName);
            request.getRequestDispatcher("/success.jsp").forward(request, response);
            //response.sendRedirect(request.getContextPath()+"/success.jsp");
        }else{
            //response.sendRedirect(request.getContextPath()+"/login.jsp");
            request.setAttribute("msg", "用户名或密码不正确!");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
        //分发转向
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

经过测试,可以得到与上面相同的结果。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 网站程序实现原理-jsp技术(一)——jsp简介及原理 https://www.wkzy.net/game/197211.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务