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不知道哪里出问题了,请大牛帮忙解决谢谢~

解决方案 »

  1.   

    是说你的goodUser不在相应的范围里面(本例是在request里面),forward转也没问题,呵呵,不知道为什么,帮你顶了
      

  2.   

    楼主试着把bean里面加上class属性试试(class="hellomvc.User"),或者不用bean,直接在jsp代码里写request.getAttribute("goodUser");看看能有结果么
      

  3.   

    异常信息说明 在当前范围中没有找到你的goodUser 这个类。
      

  4.   

    request.setAttribute("goodUser", user);这里的问题。
    楼主可以这样就可以了。方到session中
    request.getSession().setAttribute("goodUser", user);
      

  5.   

    这样的JSP代码看的眼花缭乱哦~
    request里面保存的东西只能在一次传递间起作用,下一次再取就没了~
      

  6.   

    熊猫党法院院长好办法  davidjefiny赶紧试吧
      

  7.   

    熊猫校长这样改还是不行....它报这个异常
    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/>
      

  8.   

     javax.servlet.ServletException: java.lang.InstantiationException: bean goodUser not found within scopegoodUser 这个bean 没有声明
      

  9.   

    <jsp:useBean id="goodUser" type="hellomvc.User" scope="request" />    这里的type应该改成class吧
      

  10.   

    改过了这种方法也不对,现在就主要无法访问juniorUser.jsp和adultUser.jsp~