Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建Java会话_Java_Jsp_Session - Fatal编程技术网

创建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();