实现一个简单登陆页面来深入理解学习JSP+Servlet

实现一个简单登陆页面来深入理解学习JSP+Servlet


前言

JSP是在Java中充当一个中间件的作用(Servlet是一种中间层),JSP的一个实质就是可以在前端的HTMl代码中写入一些Java代码

在Java虚拟机中,如果检测到后缀名是.jsp的文件时,就会将该请求交给JSP引擎去处理,每一个jsp文件第一次被访问的时候,jsp引擎都会给他翻译成一个Servlet文件。而其中的HTML代码则是通过Servlet中的写入语句写在了Servlet中,Java本身的代码则是原封不动的运行,单纯的从开发角度上将,JSP其实就是HTML中镶嵌Java代码并且还能运行

简而言之:JSP就是HTML和Servlet的一个中间件,在两者之间起到了一个桥梁的作用。一般来讲,做和服务器交互的动态HTML页面的时候就需要使用JSP。

JSP的基本语法

JSP脚本,执行Java逻辑的代码

<% Java代码 %>
  • JSP会将这里写的代码直接Copy到Servlet中进行执行,就是相当于直接运行这里面的代码,相比之下,如果是直接在HTML中写的则是通过out.Write()写入的方式写到了Servlet中

JSP声明,定义Java的方法

<%!
	声明Java的方法
%>
  • 可以通过JSP声明的方式来声明和定义Java中的方法。

JSP表达式,直接将Java变量输出到HTML中

<%= Java变量 %>

在不使用Servlet的方式用一个简单的小案例来实现登陆操作

登陆页面 login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆</title>
</head>
<body>
<form action="/check.jsp" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登陆">
</form>

</body>
</html>

这是一个非常普通的登陆页面,注意后缀名为jsp,action属性是在点击登陆之后需要转换到的页面,一般情况下这里的action需要写成具体的servlet所在的url,但是由于这里并不适用serlvet进行操作,所以在这里我们就直接使用另一个jsp页面来实现用户名和密码的校验过程。

校验页面 check.jsp

<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    if (username.equals("admin") && password.equals("123123")){
        request.setAttribute("username",username);
        request.getRequestDispatcher("welcome.jsp").forward(request,response);
    } else {
        response.sendRedirect("index.jsp");
    }
%>
</body>
</html>

从中可以看出,在跳转到check.jsp的时候,该页面里面并没有其他的HTML的代码,里面只有一些java逻辑代码。在jsp页面中写的java代码其实就等同于直接写在servlet。

@Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
   
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if (username.equals("admin") && password.equals("123123")){
   
            request.setAttribute("username",username);
            request.getRequestDispatcher("welcome.jsp").forward(request,response);
        } else {
   
            response
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值