웹 프로젝트를 만들려고합니다. 내 질문에 JSTL을 사용하여 JSP 페이지에 자바 속성을 표시 할 수 있습니까? 나는 JSP로 아주 새롭다.
지금까지 저는 서블릿이 처리하는 로그인 페이지를 만들었습니다. 내가 원하는 것은 사용자가 자신의 자격 증명으로 로그인하는 것입니다. 또한 자격 증명을 기반으로 데이터가 백그라운드에서 처리되고 페이지에 표시됩니다. (로그인 사용자가 내 정보 페이지를 클릭하고 데이터가 자동으로 채워진 후). 다른 서블릿을 만드는 것은 좋은 선택이 아니므로, 폼을 필요로하지 않고 보통 클래스의 데이터를 호출해야 할 것입니다.JSP의 Java 클래스에서 데이터 표시
의 login.jsp
<form action="LoginServlet" method="post">
<table>
<tr><td>Login : </td><td><input type="text" name="login"/></td></tr>
<tr><td>Password :</td><td><input type="password" name="password"/></td></tr>
<tr><td><input type="submit" value="Login"/></td><td></td></tr>
</table>
</form>
LoginServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String login = request.getParameter("login");
String password = request.getParameter("password");
request.setAttribute("login", login);
request.setAttribute("password", password);
LoginService.setPublicID(login);
boolean result = LoginService.Auth(login, password);
System.out.println(result);
if(result==true){
getServletContext().getRequestDispatcher("/main.jsp").forward(request, response);
}
else{
response.sendRedirect("login.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
LoginService.java (정식. 핸들러) 나 정전기를 사용하는 공인 ID에 기초하여이 때문에, 다른 재료가 완료]
public class LoginService {
public static String publicID;
public static String getPublicID() {
return publicID;
}
public static void setPublicID(String login) {
LoginService.publicID = login;
}
public static boolean Auth(String login, String password){
System.out.println(password);
if(password.equals("gw") && login.equals("servo")){
return true;
}
else
{
return false;
}
}
}
그러면 main.jsp로 리디렉션됩니다.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Login successful!</h2>
<a href="userinfo.jsp">UserInfo</a>
Welcome <c:out value="${login}"/>
</body>
</html>
UserInfoService.java
public class UserInfoService {
static String userName;
static String lastName;
static String mobile;
static String email;
public static String getUserName() {
return userName;
}
public static void setUserName(String userName) {
userName = LoginService.getPublicID();
UserInfoService.userName = userName;
}
public static String getEmail() {
return email;
}
public static void setEmail(String email) {
UserInfoService.email = email;
}
}
그리고 마지막으로. UserInfo.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="org.UserInfo.UserInfoService"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:out value="${UserInfoService.getUserName}"/>
</body>
</html>
하지만 항상 비어 있습니다. 내가 틀린 곳을 말해 줄 수 있니?
작동하지 않습니다. 어디에서 추가해야합니까? UserInfo.jsp에서? – Serv0