文章目录
Tomcat安装
下载
解压
设置端口
疑难杂症
无法访问页面
-
无法访问127.0.0.1:8080
-
端口设置
路径大小写匹配
IIS服务
IPV6优先级
IDEA初次使用Servlet文件
-
项目目录下创建WEB-INF文件夹
创建classes文件夹
创建web.xml文件
配置web.xml信息
设定导出目录
https://www.cnblogs.com/dslx/p/10172602.html
配置tomcat的conf/server.xml文件
生命周期
跳转
服务器跳转
根据Servlet结果,服务器内部请求页面,再把页面返回给客户端
客户端跳转
服务器直接将跳转路径响应给客户端,客户端接受响应路径。根据路径向服务器请求页面,服务器查找到页面后返回给客户端
自启动
在Servlet初始化时,通过init()方法执行业务,一般用于校验数据库完整性等需要在用户操作之前执行的功能。
下面展示一些 内联代码片
。
// 在对应的Servlet中内嵌<load-on-startup></load-on-startup>
//取值为1-99,优先级递减
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
requset常见方法
常见方法
可以获得客户端跟服务端的信息
System.out.println("浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有): " + req.getRequestURL());
System.out.println("浏览器发出请求的资源名部分,去掉了协议和主机名: " + req.getRequestURI());
System.out.println("请求行中的参数部分: " + req.getQueryString());
System.out.println("浏览器所处于的客户机的IP地址: " + req.getRemoteAddr());
System.out.println("浏览器所处于的客户机的主机名: " + req.getRemoteHost());
System.out.println("浏览器所处于的客户机使用的网络端口: " + req.getRemotePort());
System.out.println("服务器的IP地址: " + req.getLocalAddr());
System.out.println("服务器的主机名: " + req.getLocalName());
System.out.println("得到客户机请求方式: " + req.getMethod());
传参
通过form表单指定目标传递参数
<form action="register" method="get">
账号 : <input type="text" name="name"> <br>
爱好 : LOL<input type="checkbox" name="hobbits" value="lol">
DOTA<input type="checkbox" name="hobbits" value="dota"> <br>
<input type="submit" value="注册">
</form>
创建Servlet获得客户端请求并作出响应,在servlet中获得客户端传递的参数
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("获取单值参数"+req.getParameter("name"));
String[] hobbits = req.getParameterValues("hobbits");
System.out.println("获取多值参数"+ Arrays.asList(hobbits));
System.out.println("通过getParameterMap遍历所有参数");
Map<String,String[]> parameters = req.getParameterMap();
Set<String> paraNames = parameters.keySet();
for (String paraName : paraNames){
System.out.println(paraName + ": "+ Arrays.asList(parameters.get(paraName)));
}
}
配置web.xml 文件
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
response方法
设置响应方式、编码、内容
设置跳转方式
影响SEO优化
- 301永久跳转
response.setStatus(301);
response.setHeader("Location", "fail.html");
- 302暂时跳转
response.sendRedirect("fail.html");
设定缓存机制
response.setDateHeader("Expires",0 );//设定过期时间
response.setHeader("Cache-Control","no-cache");//设定无缓存,离开网站起效
response.setHeader("pragma","no-cache");//设定无缓存,离开页面起效
404出现原因
- 没有把项目放在tomcat的root目录下是,通过127.0.0.1:8080是无法访问的。需要在为项目配置tomcat时,设置Deployment->添加artifact页面,在Application Context中设定访问路径: