0. 引言
1. 问题
-
配置访问的地址:
类的前面添加了@WebServlet("/upload"),这样可以省去配置web.xml中的<servlet>。 -
doGet和doPost方法:
类中主要为两个方法:doGet、doPost两个方法,可以在doPost中调用doGet(request, response);来节省代码。一般采用doGet()方法调用doPost()方法,然后在doPost()中完善代码 -
servlet端参数获取:
可以对网址地址有参数传递,通过request.getParameter("platform");获取指定的参数名,可以get显式传递,也可以post通过表单传递,但是获取到参数的时候,判断当前的参数是否为空,其中判断 param == null 表示直接访问的该网址,根本没传参数和参数值,但是 param.isEmpty()就表示参数是空了。 -
判断当前是否向网址传递参数:
根据第三可以在 param == null 的时候返回一个参数,用来直接访问网址的时候,param.isEmpty()的时候判断参数传值是否正确。 -
Servlet解析Json串:
在Servlet中使用Gson解析数据的时候,可以引入Gson的Jar包,但是这个时候就要注意了,首先需要获取json串,然后调用Gson中的fromJson方法,但是此时问题就来了,系统会显示java.lang.NoClassDefFoundError: com/google/gson/Gson错误,需要将添加到项目中的Gson的jar包,放在把gson-1.6.jar复制到WEB-INF/lib/下再运行BufferedReader reader = request.getReader(); String json = reader.readLine(); reader.close(); // 然后调用gson.fromJson方法解析Json串
-
servlet启动时遇到A child container failed during start
主要为问题1中在类前添加了@WebServlet("/upload")之后,再在web.xml中再次配置就会遇到这个问题 -
修改网址之后的PATH,http://192.168.150.113:8080/index/中的index
修改在Tomcat的版本中的server.xml中的最下面的一行xml语句,其中包括<Context docBase="Test" path="/index" reloadable="true" source="org.eclipse.jst.jee.server:Test"/>
中的path后面跟着的就是网址后面的路径,将这个路径修改为自己想要的路径即可,不过要记得保存。 -
网页不显示中文,中文out出现乱码
在response中设置中文输出符合的格式,设置的方法为response.setContentType("text/html;charset=UTF-8");
-
get方法向服务器发送数据
使用get方法向服务器发送数据是明文,页面和已编码的信息中间用 ? 字符分隔,并且有长度限制,请求字符串中最多只能有 1024 个字符。http://www.test.com/hello?key1=value1&key2=value2
-
Post方法传递中文数据的时候需要转码
如果表单提交的数据中有中文数据则需要转码:String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
由于 tomcat8 默认编码是 utf-8,而这个过滤器把他当成 ISO8859-1 解码时(即解码了两次),就会出现问题,导致所有中文变成问号
所以我们只需要不使用这个过滤器就可以了。
也就是采用以下代码:
String name =new String(request.getParameter("name"));
3. 工具
- 可以使用Postman软件,不过需要翻墙下载,地址为Postman下载地址
网友评论