【发布时间】:2014-07-05 22:20:17
【问题描述】:
我在index.jsp 和login servlet 有登录表单。如果用户名和密码正确,则取决于权限,打开三个 .jsp 页面之一 (admin.jsp, user1.jsp, user2.jsp)。在打开的 .jsp 页面中,用户的用户名显示为 (${User.username})。我也有存储用户数据的 bean“用户”。
登录小服务程序
public class Login extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = new User();
user.setUsername(username);
user.setPassword(password);
try {
HttpSession session = request.getSession(true);
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","");
Statement stm = conn.createStatement();
if( !(username.equals("")) && !(password.equals("")) ){
String query = "SELECT * FROM users WHERE username='"+username+"' AND password='"+password+"'";
ResultSet res = stm.executeQuery(upit);
if(res.next()){
String username = res.getString(2);
int privileges = res.getInt(9);
int active = res.getInt(10);
user.setUsername(username);
user.setPrivileges(privileges);
user.setActive(active);
sesija.setAttribute("user", user);
if(privileges==1 && active==1){
RequestDispatcher r = request.getRequestDispatcher("/admin.jsp");
r.forward(request, response);
}
......rest of the code
}catch(Exception e){
out.println(e);}
}
在 admin.jsp 我有一行:
<div id="topMenu>${user.username} | <a href="Logout">Logout</a></div>
Bean“用户”
public class User {
private String username;
private int privileges;
private int active;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getPrivileges() {
return privileges;
}
public void setPrivileges(int privileges) {
this.privileges = privileges;
}
public int getActive() {
return active;
}
public void setActive(int active) {
this.active = active;
}
}
用户可以根据自己的权限在数据库中搜索产品。在他点击搜索按钮后,我想检索他的用户名并用于在新的 servlet 中进行数据库查询。当我将用户的用户名手动放入 servlet 代码(在 sql 查询语句中)以进行代码检查时,一切正常并生成结果,但是当用户点击搜索按钮时我无法自动获取值。
提前致谢
【问题讨论】: