java - 在 JSP 中将值从 servlet 传递到 Textbox

标签 java jsp servlets

我正在尝试开发一个简单的网络应用程序,它接受输入并运行特定命令,并将结果返回给用户。当我尝试将结果/输出传递到文本框时,我有点挣扎,它总是显示空...... 我在这里缺少什么?

JAVA代码:

public boolean CheckSite(String site) throws Exception
    {
        try 
        { 
        Process p=Runtime.getRuntime().exec("cmd /c nslookup -debug "+site+".abc.internal.rpz | findstr 666"); 
        p.waitFor(); 
        BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); 
        String line=reader.readLine(); 
        if (line == null)
        {
            System.out.println("This website is not blocked");
            return false;
        }
        else if(line!=null && line.contains("666"))
        { 
            System.out.println("Website is blocked");
            return true;

        } 

        } 
        catch(IOException e1) {}
        return false; 
    }

Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
        String site = request.getParameter("text1");
        try {
            b=ec.CheckSite(site);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        request.setAttribute("value", b);
    }

JSP 页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Website Status</title>
</head>
<body>
<form align ="middle" action ="checkBlocked" method="post">
Please Enter The Website
<input type ="text" name ="inputText" >
<br>
<input type ="submit" value ="Submit">
</form>
<input type="text" name="done" value='<%=request.getAttribute("TextValue")%>'/> 

</body>
</html>

提前谢谢

最佳答案

您正在设置属性名称:

  request.setAttribute("value", b);

并尝试检索为:

  getAttribute("TextValue")

不建议使用 Scriptlet。 JSP EL 和 JSTL 是完成此任务的方法(恕我直言)。

将您的 servlet 名称设置为 checkBlocked,如下所示:

<form align ="middle" action ="checkBlocked" method="post">

然后将响应从 servlet 转发或重定向到 jsp:

request.getRequestDispatcher("confirmationPage.jsp").forward(request, response);

关于java - 在 JSP 中将值从 servlet 传递到 Textbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531825/

相关文章:

eclipse - 使用 Tomcat 和 Eclipse 在本地主机上部署 Web 应用程序的最佳实践是什么?

java - 发送 boolean 值作为请求参数

java - DelegatingFilterProxy 中的 NoSuchBeanDefinitionException

java - 如何编译具有 Apache Commons 依赖项的 servlet 类?

java - 带有 JList 条目的对话框或手动输入文本作为单独的选择

java - 获取List中元素的类型

java - 如果 servlet 上下文初始化失败,则跳过部署或停止 Web 应用程序

java - 在运行时切换 WebDriver 的 native 事件功能

jquery - 颜色框未正确显示内容