创建Java会话
我正在尝试在验证用户登录凭据后创建会话。我导入了以下内容:创建Java会话,java,jsp,session,Java,Jsp,Session,我正在尝试在验证用户登录凭据后创建会话。我导入了以下内容: import javax.servlet.http.HttpSession; 我正在使用以下代码: HttpSession session = request.getSession(); session.setAttribute("sessionName","sessionValue"); 但是,我收到了与请求相关的以下错误 request cannot be resolved. 我的完整代码: package com.q1la
import javax.servlet.http.HttpSession;
我正在使用以下代码:
HttpSession session = request.getSession();
session.setAttribute("sessionName","sessionValue");
但是,我收到了与请求相关的以下错误
request cannot be resolved.
我的完整代码:
package com.q1labs.qa.xmlgenerator.controller.managesession;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import javax.servlet.http.HttpSession;
import com.q1labs.qa.xmlgenerator.model.db.DbLoginQueries;
public class Login {
private DbLoginQueries query = new DbLoginQueries();
public String login(String username, String password) throws SQLException, FileNotFoundException, ClassNotFoundException, IOException{
String returnUrl = "";
//Code verifiying users credentials (Code has been removed)
//If valid is true then credentials are correct
if(valid == true){
//If credentials are correct then create a session
HttpSession session = request.getSession();
session.setAttribute("sessionName","sessionValue");
returnUrl = "home.jsp";
}else{
returnUrl = "index.jsp";
}
return returnUrl;
}
}
在我看来,您正试图在Java类中使用JSP代码。只有在JSP请求中才有可以在scriplets中使用的隐式对象
在Java中,需要使用servlet并重写doGet(HttpServletRequest-req,HttpServletResponse-resp)或doPost(HttpServletRequest-req,HttpServletResponse-resp)可能重复的HttpSession session=request.getSession()代码>你们在哪里这样做,那个方法/构造函数的签名是什么?@BheshGurung我在一个名为Login的Java类和一个名为Login的公共方法中这样做,该方法返回一个字符串。我是Java新手,希望这就是您想要的。因此,您没有在任何地方声明变量request
。您实际上需要将请求对象传递给它。你从哪里调用这个方法?它应该类似于公共字符串登录(HttpServletRequest){
您需要将该调用移动到某个servlet。JSP中的这种代码只是一种不好的做法。因此,当创建会话并处理它们时,所有操作都必须在JSP页面中完成,而不能在Java类中完成?在Java servlet中,可以从请求参数获取doGet或doPost中的会话:request.getSession();