Servlet如何将response结果返回至提交页面
现在希望通过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>
```