2 steve yanrun steve_yanrun 于 2016.09.25 22:02 提问

Servlet获取不到JSP页面上的值

如下是Servlet代码:

 public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession();
        //String account = (String) request.getAttribute("account");
        String account = request.getParameter("a");
        System.out.println("--------------------------------"+account);
        List<Teacher> oneTeaInfo = new ArrayList<Teacher>();
        try {
            oneTeaInfo = new TeacherDao().queryTeaInfo(account);
            session.setAttribute("oneTeaInfo", oneTeaInfo);
            request.getRequestDispatcher("/teacher_info.jsp").forward(request,response);
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }

如下是JSP的相关代码:

 <input type="text" name="a" value="666666" />

我是把值写死的,不写死的情况下,代码如下:

    <c:set var="account" value="${sessionScope.account}" scope="request"/>

居然运行结果是空值,如下图所示:
图片说明
图片说明
请问各位大神,应该如何解决这个问题?

9个回答

qq_15617533
qq_15617533   2016.09.25 23:56
已采纳

要嘛是input提交的时候没包含在form里面,要嘛是提交之前把a的值覆盖了

Message_lx
Message_lx   2016.09.25 22:05

是POST方法提交的数据么

qq_22946541
qq_22946541   2016.09.25 22:25

你可以把前台的代码也贴出来吗

niaonao
niaonao   Rxr 2016.09.25 22:46

前台代码贴出来
应该是提交数据时出的错

sj18182656342
sj18182656342   2016.09.26 08:16

这个看最后的sql应该是,前台没有把account参数传过来 报了sql错误
你把name的封装变为 account

sj18182656342
sj18182656342 或者直接用 request得到这个 name封装的值 让后台直接接受使用
大约一年之前 回复
z991876960
z991876960   2016.09.26 11:20

post提交数据有问题

quasimodo_es
quasimodo_es   2016.09.26 12:46

如果是post提交的,并且a在form表单中,后台用request.getParameter("a") 取值的,
就一定能够获取到

ios_king
ios_king   2016.09.27 11:49

request.getAttribute("") 是根据标签的 name 属性中的字符串来拿值的。你没有对应上

u013835855
u013835855   2016.09.27 18:42

应该是没有放到form表单里面

Csdn user default icon
上传中...
上传图片
插入图片