adultUser.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />
<h4>You are good to visit this site</h4>
Your Name:<jsp:getProperty property="name" name="goodUser" /><br/>
Your Password:<jsp:getProperty property="password" name="goodUser" /><br/>
Your Age:<jsp:getProperty property="age" name="goodUser" /><br/>badUser.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<h4>Your user name or password is not correct!</h4>helloMvc.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<form method="post" action="/MVC/servlet/HelloMvc">
Input your id and password:<br/>
Your ID:<input type="text" name="id" size="10" /><br/>
Your Password:<input type="text" name="password" size="10" /><br/>
<input type="submit" value="Enter" />
</form>junior.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />
<h4>You are too young to visit this site</h4>
Your Name:<jsp:getProperty property="name" name="goodUser" /><br/>
Your Password:<jsp:getProperty property="password" name="goodUser" /><br/>
Your Age:<jsp:getProperty property="age" name="goodUser" /><br/>User.java
package hellomvc;
import java.util.*;
public class User {
private String id;
private String password;
private String name;
private int age;
private static HashMap users;
public User(String id, String password, String name, int age) {
super();
this.id = id;
this.password = password;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
static {
users = new HashMap<String, User>();
users.put("id001", new User("id001", "p001", "John Hacker", 17));
users.put("id002", new User("id002", "p002", "John Smith", 16));
users.put("id003", new User("id003", "p003", "Albert Zhang", 20));
}
public static User getUser(String id){
return ((User)users.get(id));
}
}HelloMvc.java
package hellomvc;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class HelloMvc extends HttpServlet { public HelloMvc() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
String id = (request.getParameter("id")).trim();
String password = (request.getParameter("password")).trim();
User user = User.getUser(request.getParameter("id"));
String address;
if(user == null || (user.getPassword().equals(password))){
address = "/HelloMvc/badUser.jsp";
}
else {
if(user.getAge() < 18){
address = "/HelloMvc/juniorUser.jsp";
}
else {
address = "/HelloMvc/adultUser.jsp";
}
request.setAttribute("goodUser", user);
}
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
现在只能访问helloMvc.jsp,访问另外2个就报500错
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.InstantiationException: bean goodUser not found within scope
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
查了下scope的范围好像是request不知道哪里出问题了,请大牛帮忙解决谢谢~
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />
<h4>You are good to visit this site</h4>
Your Name:<jsp:getProperty property="name" name="goodUser" /><br/>
Your Password:<jsp:getProperty property="password" name="goodUser" /><br/>
Your Age:<jsp:getProperty property="age" name="goodUser" /><br/>badUser.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<h4>Your user name or password is not correct!</h4>helloMvc.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<form method="post" action="/MVC/servlet/HelloMvc">
Input your id and password:<br/>
Your ID:<input type="text" name="id" size="10" /><br/>
Your Password:<input type="text" name="password" size="10" /><br/>
<input type="submit" value="Enter" />
</form>junior.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />
<h4>You are too young to visit this site</h4>
Your Name:<jsp:getProperty property="name" name="goodUser" /><br/>
Your Password:<jsp:getProperty property="password" name="goodUser" /><br/>
Your Age:<jsp:getProperty property="age" name="goodUser" /><br/>User.java
package hellomvc;
import java.util.*;
public class User {
private String id;
private String password;
private String name;
private int age;
private static HashMap users;
public User(String id, String password, String name, int age) {
super();
this.id = id;
this.password = password;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
static {
users = new HashMap<String, User>();
users.put("id001", new User("id001", "p001", "John Hacker", 17));
users.put("id002", new User("id002", "p002", "John Smith", 16));
users.put("id003", new User("id003", "p003", "Albert Zhang", 20));
}
public static User getUser(String id){
return ((User)users.get(id));
}
}HelloMvc.java
package hellomvc;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class HelloMvc extends HttpServlet { public HelloMvc() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
String id = (request.getParameter("id")).trim();
String password = (request.getParameter("password")).trim();
User user = User.getUser(request.getParameter("id"));
String address;
if(user == null || (user.getPassword().equals(password))){
address = "/HelloMvc/badUser.jsp";
}
else {
if(user.getAge() < 18){
address = "/HelloMvc/juniorUser.jsp";
}
else {
address = "/HelloMvc/adultUser.jsp";
}
request.setAttribute("goodUser", user);
}
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
现在只能访问helloMvc.jsp,访问另外2个就报500错
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.InstantiationException: bean goodUser not found within scope
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
查了下scope的范围好像是request不知道哪里出问题了,请大牛帮忙解决谢谢~
楼主可以这样就可以了。方到session中
request.getSession().setAttribute("goodUser", user);
request里面保存的东西只能在一次传递间起作用,下一次再取就没了~
exception org.apache.jasper.JasperException: An exception occurred processing JSP page /HelloMvc/adultUser.jsp at line 21: <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
2: <jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />
3: <h4>You are good to visit this site</h4>
4: Your Name:<jsp:getProperty property="name" name="goodUser" /><br/>
5: Your Password:<jsp:getProperty property="password" name="goodUser" /><br/>