用servlet实现javaweb中多个jsp页面之间的条件跳转,以及通过配置xml文件调整jsp文件的主从关系
简介
基于IDEA,通过使用servlet框架实现javaweb中多个jsp页面之间条件性的跳转,例如本例中给一个计算器页面加一个登录界面判断账号密码是否正确,只有正确的用户可以使用本计算器(注:关于计算器的项目代码在我的博客页面中有)。
步骤
一、建立Javaweb项目并配置好tomcat服务器(我的个人博客中有详细讲解如何配置)
二、在web文件夹下创建多个jsp页面,本例中创建了三个页面
三、分别配置三个页面的内容,例如我这里附上fail文件和login文件的源码,计算器页面源码在我的博客页面中有
login登录页面
<html>
<head>
<title>login</title>
</head>
<body>
<h3>login</h3>
<div class = "_form">
<form action ="login" method =”get“>
<input type="text" name="Username" class="Username" placeholder="Username">
<br>
<input type="text" name="Password" class="Password" placeholder="Password">
<br>
<br>
<input type = "submit" name = "skip" value = "skip the other one">
</form>
</div>
</body>
</html>
如果不是认定的账号则返回如下fail页面
<html>
<head>
<title>Fail</title>
</head>
<body>
<h3>账号或密码错误!请返回重新输入</h3>
</body>
</html>
四、设置多个jsp页面之间的主从关系,即打开这个项目第一个看到的页面要是login页面
我们打开xml配置文件
在web-app标签中加上如下内容(即指定主页面为login页面)
五、在项目的src文件夹下对应你自己创建的包目录下新建Java类文件,用于对应login页面的请求以及根据请求返回对应的页面。内写入如下内容
package com.mycalc.servlet;
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;
/**
* @author Milo
* @creat 2021-04-22 14:59
* @function
* @versions
*/
//对应login页面提交表单设置的action行为,这句表示用如下的类来执行这个行为
@WebServlet("/login")
public class Login extends HttpServlet {
String username;//接收用户名
String password;//接收密码
protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//以下是给服务器的内容
System.out.println("------已进入login Get程序-------");
response.setContentType("text/html;charset = utf-8");
request.setCharacterEncoding("utf-8");
//接收login表单中对应的提交项
username = request.getParameter("Username");
password = request.getParameter("Password");
//通过判断账户名和密码是否正确,来对应返回页面,sendRedirext方法用于返回页面(方法参数填写的是需要返回的页面文件的位置,如果不清楚可以执行一次看login页面的位置,然后截取下来复制到这儿,把最后的login.jsp改成对应的页面文件就好了)
if(username.equals("milopw") && password.equals("1234569"))
response.sendRedirect("http://localhost:8080/firstweb/calc.jsp");
else
response.sendRedirect("http://localhost:8080/firstweb/fail.jsp");
}
}
由于当前还未引入数据库,所以本程序中仅设置了一个账户和密码
六、运行javaweb程序并选择需要的浏览器查看结果
运行界面如下
输入正确的账号密码点提交,会返回计算器界面
若输入的账号密码和程序中判断的不一样,则提交后返回错误页面
由于当前还未引入数据库,所以本程序中仅设置了一个账户和密码,等后期会通过jdbc引入mysql数据库,然后就可以有一个数据库表记录登录(注册)过的账户和密码,然后注册过的账户就可以登录。进一步优化程序