Tomcat学习日记

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结果,服务器内部请求页面,再把页面返回给客户端

客户端跳转

服务器直接将跳转路径响应给客户端,客户端接受响应路径。根据路径向服务器请求页面,服务器查找到页面后返回给客户端

自启动

在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优化

  1. 301永久跳转
response.setStatus(301);
response.setHeader("Location", "fail.html");
  1. 302暂时跳转
response.sendRedirect("fail.html");

设定缓存机制

response.setDateHeader("Expires",0 );//设定过期时间
response.setHeader("Cache-Control","no-cache");//设定无缓存,离开网站起效
response.setHeader("pragma","no-cache");//设定无缓存,离开页面起效

404出现原因

  1. 没有把项目放在tomcat的root目录下是,通过127.0.0.1:8080是无法访问的。需要在为项目配置tomcat时,设置Deployment->添加artifact页面,在Application Context中设定访问路径:在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值