Servlet如何将response结果返回至提交页面

Everyday前进一步 2017-07-26 09:33:29
现在希望通过servlet连接前后端,效果为:点击前端button即可调用servlet查询数据库中信息是否重复。
目前不清楚的内容有以下几点:
1. 想直接在 newOEM_Customer.html 中通过按钮提交form调用servlet,并将结果返回到这个页面中
2.web.xml该如何配置

之前做过通过servlet跳转到其他页面的项目,但将结果返回至提交页面上这还是头一次,请问是否可行?我将各部分代码粘贴于下方,请各位大侠不吝相助,小弟感激不尽!

**newOEM_Customer.html **
```
<div class="tab-content">
<div class="tab-pane active" id="1">
<form id="edit-profile" action="/zzz_SchneiderDatabaseApplication/newOEMcustomer" class="form-horizontal" method="get" />
<fieldset>
<div class="control-group">
<label class="control-label" for="username">OEM Code</label>
<div class="controls">
<input type="text" class="input-medium disabled" id="OEMCode" value="OEM-XXXXX" disabled=" " />
<p class="help-block">请输入OEM客户基本信息,如为新客户,系统将自动生成OEM Code.</p>
</div> <!-- /controls -->
</div> <!-- /control-group -->


<div class="control-group">
<label class="control-label" for="firstname">OEM客户名称</label>
<div class="controls">
<input type="text" class="input-xxlarge" id="name" name="name" value="请输入全称" onclick="this.value='';focus()" />
</div> <!-- /controls -->
</div> <!-- /control-group -->

<div class="control-group">
<label class="control-label" for="email">通讯地址</label>
<div class="controls">
<input type="text" class="input-xxlarge" id="adress" name="adress" value="请输入完整地址信息" onclick="this.value='';focus()"/>
</div> <!-- /controls -->
</div> <!-- /control-group -->

<div class="control-group">
<label class="control-label" for="lastname">省份</label>
<div class="controls">
<input type="text" class="input-medium" id="province" name="province" value="请输入汉字全称" onclick="this.value='';focus()" />
</div> <!-- /controls -->
</div> <!-- /control-group -->

<div class="control-group">
<label class="control-label" for="lastname">城市</label>
<div class="controls">
<input type="text" class="input-medium" id="city" name="city" value="请输入汉字全称" onclick="this.value='';focus()" />
</div> <!-- /controls -->
</div> <!-- /control-group -->

<p><%${message}%></p>
<br /><br />



<button type="submit" class="btn btn-primary" >查询信息</button>

<a href="./OEMcustomer.jsp"><button class="btn" type="button">取消</button></a>

</fieldset>
</form>
</div>

```

**Servlet**
```
@WebServlet(name="newOEMcustomer",urlPatterns="/newOEM_Customer")
public class NewOEMcustomerController extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public NewOEMcustomerController() {
super();
// TODO Auto-generated constructor stub
}
public void init() {
try {
super.init();
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
String CustomerName=req.getParameter("name");
String CustomerProvince=req.getParameter("province");
String CustomerCity=req.getParameter("city");
OEM_Customer_dao customerDao=new OEM_Customer_dao();
System.out.println("Get req!");
try {
String result=customerDao.findCustomerByBasicInformation(CustomerName, CustomerProvince, CustomerCity);
PrintWriter out = res.getWriter();
req.setAttribute("message", result); // This will be available as ${message}
req.getRequestDispatcher("/PAGES/newOEM_Customer.html").forward(req, res);
out.println(result);
out.flush();
out.close();
System.out.println("Send Resp...");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

```
**web.XML**


```
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<servlet>
<servlet-name>newOEMcustomer</servlet-name>
<servlet-class>controller.NewOEMcustomerController</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>newOEMcustomer</servlet-name>
<url-pattern>/zzz_SchneiderDatabaseApplication/PAGES/newOEMcustomer</url-pattern>
</servlet-mapping>

</web-app>
```

...全文
2855 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn匿名用户 2017-07-27
  • 打赏
  • 举报
回复
放在req的域中,用ajax技术返回json也可以解决
  • 打赏
  • 举报
回复
引用 3 楼 pany1209 的回复:
[quote=引用 2 楼 sinat_31390335 的回复:] [quote=引用 1 楼 pany1209 的回复:] 把结果放在request再转发到提交的页面就可以了,或者用ajax返回json也可以。。。。
你好,我使用的方法为:
req.setAttribute("message", result); // This will be available as ${message}
req.getRequestDispatcher("/PAGES/newOEM_Customer.html").forward(req, res);
jsp中采用
<p><%${message}%></p>
这样可以吗[/quote] 加这个<%%>啥意思???不报错吗?直接<p>${key}</p>。。。。[/quote] 是这样,之前的页面我用了jsp来写,不过jsp怎么取值还不熟悉。谷歌了别人的临时放到这里来,请问除了这个,servlet写法没有问题吧?
李德胜1995 2017-07-26
  • 打赏
  • 举报
回复
引用 2 楼 sinat_31390335 的回复:
[quote=引用 1 楼 pany1209 的回复:] 把结果放在request再转发到提交的页面就可以了,或者用ajax返回json也可以。。。。
你好,我使用的方法为:
req.setAttribute("message", result); // This will be available as ${message}
req.getRequestDispatcher("/PAGES/newOEM_Customer.html").forward(req, res);
jsp中采用
<p><%${message}%></p>
这样可以吗[/quote] 加这个<%%>啥意思???不报错吗?直接<p>${key}</p>。。。。
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
把结果放在request再转发到提交的页面就可以了,或者用ajax返回json也可以。。。。
你好,我使用的方法为:
req.setAttribute("message", result); // This will be available as ${message}
req.getRequestDispatcher("/PAGES/newOEM_Customer.html").forward(req, res);
jsp中采用
<p><%${message}%></p>
这样可以吗
李德胜1995 2017-07-26
  • 打赏
  • 举报
回复
把结果放在request再转发到提交的页面就可以了,或者用ajax返回json也可以。。。。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧