一.字符串
傳:
在頁面各個文本相關控件中輸入數據,值均以字符串String形式,存在value中
<form action="test" method="post"> <input type="text" name="name" /> <br /> <input type="text" name="age" /> <br /> <input type="radio" name="gender" value="男" checked="checked"/>男 <input type="radio" name="gender" value="女"/>女 <br /> <input type="checkbox" name="favors" value="football"/>Football <input type="checkbox" name="favors" value="book"/>book <input type="checkbox" name="favors" value="java"/>java <br /> <select name="city" multiple="multiple" size="5"> <option value="1">北京</option> <option value="2">成都</option> <option value="3">重慶</option> </select> <input type="submit" value="提交" /> <br /> </form>
取:
通過action屬性找到對應的Servlet,在doGet()方法中通過HttpServletRequest參數取值
getParameter,getParameterValues 返回值類型分別是String,String[ ] 因此這兩個方法用來獲取請求參數中的字符串類型的值
//使用注解表示該Servlet默認的請求路徑 @WebServlet("/test") public class HttpTest2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //getParameter方法得到請求中的值 String name = req.getParameter("name"); int age = Integer.parseInt(req.getParameter("age")); //如果一個標識有多個值,則使用getParameterValues String[] id = req.getParameterValues("id"); System.out.println(name); System.out.println(age); for (String s:id){ System.out.println(s); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
二. 二進制
傳:
在傳輸文件時使用二進制形式傳遞,當我們使用form表單上傳文件時post請求的時候,需要在form表單中添加enctype="multipart/form-data"屬性。
<form action="file" method="post" enctype="multipart/form-data"> <input type="file" name="avatar"><br/> <input type="submit" value="提交"> </form>
取:
通過req.getPart() 得到一個Part接口的實例,再通過調用這個實例中的方法,如getSubmittedFileName()得到文件名,write()保存文件到指定路徑等
在傳遞文件時,servlet需要增加注解@MultipartConfig
@WebServlet("/file")
@MultipartConfig
public class HttpTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//調用getPart得到一個Part接口
Part part = req.getPart("avatar");
//接口中有若干方法
String name = part.getSubmittedFileName();
String suffix = name.substring(name.lastIndexOf("."));
String path = req.getServletContext().getRealPath("/");
System.out.println(path);
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
part.write(path+uuid+suffix);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
