显示以下内容instance-20220919-1328 login:
时间: 2023-09-04 15:09:05 浏览: 80
显示的内容 "instance-20220919-1328 login:" 是提示您输入凭据的终端登录界面。在这里,您可以输入您的用户名以及相应的密码来登录到该计算机。
请注意,这只是一个示例提示,实际情况可能会有所不同。根据您的具体设置和要求,可能会有其他形式的登录提示。
如果您已经拥有正确的登录凭据,请在该行中输入您的用户名,然后按下回车键继续登录过程。如果您需要进一步的帮助或有其他问题,请告诉我。
相关问题
创建一个SpringMVC项目,完成简单银行系统的登陆页面的计设(login.jsp),并完成配置DispatchServlet,Spring-mvc.xml(applicationContext.xml),controller类的编写,当用户输入: ~/login时,进入login.jsp页面。 实验2 在login.jsp页面上,输入userName,Password 时,提交到控制层 userlogin方法,并在控制台输出userName,password, 如果,用户名和密码是ZhangSan和123时,则跳转到 main.jsp 并显示用户名在页面上。否则,跳转到 login.jsp页面,并显示用户名或密码错误。
以下是实现上述功能的步骤:
1. 创建一个SpringMVC项目,可以使用Spring Tool Suite等IDE工具来创建。
2. 在webapp目录下创建login.jsp页面,该页面包含一个表单,可以输入用户名和密码,并且有一个提交按钮。
3. 在web.xml文件中配置DispatchServlet,将其映射到“/”路径下。
4. 在Spring-mvc.xml(applicationContext.xml)文件中配置Controller和视图解析器。
5. 编写Controller类,其中包含userlogin方法,该方法接收用户输入的用户名和密码,并进行相应的处理。
6. 在userlogin方法中,可以使用HttpServletRequest对象来获取用户输入的用户名和密码。
7. 如果用户名和密码是ZhangSan和123时,则跳转到main.jsp页面,并显示用户名在页面上。否则,跳转到login.jsp页面,并显示用户名或密码错误。
8. 在main.jsp页面中,显示用户输入的用户名。
下面是实现上述功能的代码示例:
1. login.jsp页面
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<form action="${pageContext.request.contextPath}/userlogin" method="post">
<label for="userName">UserName:</label>
<input type="text" id="userName" name="userName"/><br/><br/>
<label for="password">Password:</label>
<input type="password" id="password" name="password"/><br/><br/>
<input type="submit" value="Login"/>
</form>
</body>
</html>
```
2. Spring-mvc.xml文件
```
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="com.example.controller" />
<mvc:annotation-driven />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
```
3. Controller类
```
package com.example.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class UserController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String showLoginPage() {
return "login";
}
@RequestMapping(value = "/userlogin", method = RequestMethod.POST)
public String userLogin(HttpServletRequest request, Model model) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
if (userName.equals("ZhangSan") && password.equals("123")) {
model.addAttribute("userName", userName);
return "main";
} else {
model.addAttribute("errorMsg", "Username or password is incorrect");
return "login";
}
}
}
```
4. main.jsp页面
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Main Page</title>
</head>
<body>
<h2>Welcome ${userName}!</h2>
</body>
</html>
```
假设用户登录页面login.jsp在web工程web2022的hw目录下,即访问login.jsp的URL地址是http://localhost:8080/web2023/hw/login.jsp,将login.jsp提交的用户名和密码由FirstServlet(映射地址为/servlet/firstServlet.do)获取进行判断,如果登录成功,则跳转至SecondServlet(映射地址为/servlet/secondServlet.do)显示用户名信息,如果登录不成功,则跳转至登录失败页面hw/failed.jsp。 要求:用户名和密码存在WEB-INF/userinfo.txt文件中,若页面出现404错误则统一跳转至404.html页面,500错误则统一跳转至500.html页面,并提示出错信息。
首先需要在web2023工程下创建以下目录结构:
```
web2023
├── WEB-INF
│ ├── classes
│ ├── lib
│ └── userinfo.txt
├── hw
│ ├── login.jsp
│ └── failed.jsp
├── servlet
│ ├── FirstServlet.java
│ └── SecondServlet.java
├── 404.html
└── 500.html
```
其中,userinfo.txt文件用于存储用户名和密码,格式为:
```
username1=password1
username2=password2
```
FirstServlet的实现如下:
```java
package servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// 读取userinfo.txt文件
String path = getServletContext().getRealPath("/WEB-INF/userinfo.txt");
File file = new File(path);
BufferedReader reader = new BufferedReader(new FileReader(file));
// 验证用户名和密码是否正确
String line;
boolean found = false;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("=");
if (parts.length == 2 && parts[0].equals(username) && parts[1].equals(password)) {
found = true;
break;
}
}
reader.close();
// 根据验证结果跳转页面
if (found) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect(request.getContextPath() + "/servlet/secondServlet.do");
} else {
response.sendRedirect(request.getContextPath() + "/hw/failed.jsp");
}
}
}
```
SecondServlet的实现如下:
```java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取用户名
HttpSession session = request.getSession();
String username = (String) session.getAttribute("username");
// 显示用户名信息
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<h1>欢迎您," + username + "!</h1>");
}
}
```
login.jsp的实现如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/servlet/firstServlet.do" method="post">
<label>用户名:</label>
<input type="text" name="username" /><br />
<label>密码:</label>
<input type="password" name="password" /><br />
<input type="submit" value="登录" />
</form>
</body>
</html>
```
failed.jsp的实现如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录失败</title>
</head>
<body>
<h1>登录失败,请检查用户名和密码是否正确!</h1>
</body>
</html>
```
web.xml的实现如下:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>web2023</display-name>
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<url-pattern>/servlet/firstServlet.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>secondServlet</servlet-name>
<servlet-class>servlet.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>secondServlet</servlet-name>
<url-pattern>/servlet/secondServlet.do</url-pattern>
</servlet-mapping>
</web-app>
```
在以上实现中,使用了ServletContext的getRealPath方法获取userinfo.txt文件的绝对路径;使用HttpSession对象在FirstServlet和SecondServlet之间传递数据;使用EL表达式获取web应用的上下文路径;使用了web.xml的error-page配置实现404和500错误页面的统一处理。
阅读全文