目标/任务
用在前端通过文本框获得数据,传到后台并处理
- 获得数据使用的是form表单
- 传送数据使用的是servlet
- 处理数据是靠Java
index.jsp 中的代码:
<form action="Servlet_MySql" method="get">
Name:
<br>
<label for="a"></label><input type="text" id="a" name="a"/>
<br>
<p>
Reason:
<br>
<label for="reason"></label><input type="text" name="reason" id="reason"/>
<br>
</p>
插入:<label>
<input type="radio" name="ckb" value="insert"/>
</label><br>
删除:<label>
<input type="radio" name="ckb" value="delete"/>
</label><br>
查找:<label>
<input type="radio" name="ckb" value="select"/>
</label>
<p>
<input type="submit" value="保存"/>
</p>
</form>
- 设置表单,action=自己起的名字,method=get,不用post。
- 在表单里添加文本框:input type=text,注意在java中访问这些文本框时使用的名字,时name属性,而不是id属性,所以一定要添加name。
- 选择器(intput type=radio)在所有相同name的选择器中只有一个能被选中。
- 提交按钮:input type=submi,提交表单给action的那一边。
web.xml中的代码
<servlet>
<servlet-name>Servlet_MySql</servlet-name>
<servlet-class>com.Servlet_MySql</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet_MySql</servlet-name>
<url-pattern>/TomcatTest/Servlet_MySql</url-pattern>
</servlet-mapping>
- servle-name标签中写的是自己起好的名字(action后面的)
- 注意要写在已经有的web-app标签里。
.java文件中的代码
//import语句之后
@WebServlet("/Servlet_MySql")
自己写的Java类需要继承HttpServlet类,并重写doGet方法,来处理从表单里get到的数据。
(若上面method是post则是doPost方法)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
if(request==null){
System.out.println("request is null");
return ;
}
//得到a中的数据
String name=request.getParameter("a");
//得到reason中的数据
String reason=request.getParameter("reason");
//获取reponse的输出流
PrintWriter out=response.getWriter();
//输出到下一个页面
out.println("ruaruarua");
}
可以将doGet的两个参数简单的理解为
- request:请求,即表单发送过来的数据
- response:回应,即处理完表单的答复
提交表单之后,浏览器会进入到下一个页面,其内容就是依靠代码中out.println展现的,out.println中可以使用html语句。