JAVA高级工程师课程笔记整理——(八)tomcat与九大内置对象

(八)tomcat与九大内置对象
tomcat
    B/S 
        浏览器/服务器
        请求:request
        响应: response
    C/S:
        客户端/服务器
    URL:
        网址
    URI:
        范围包括url
    http
    https: 更安全的http协议
    tomcat常用版本:
        tomcat6,tomcat7
    安装要求:
        最好不要放在中文文件夹,文件夹名有空格或
        特殊字符
        apache-tomcat-7.0.41.rar
        解压当前文件夹,重命名文件夹为tomcat7
    启动:
        /bin/startup.bat
        需要jdk环境
        新建JAVA_HOME  变量值:jdk路径
        在path里添加:%JAVA_HOME%\bin;
    tomcat目录结构:
        /bin  存放脚本文件
        /conf  存放配置文件
        /lib  jar文件
        /logs  存放日志文件
        /temp  临时文件
        /webapps  发布web应用
        /work   存放jsp生成的servlet程序
    访问tomcat服务器:
        TCP,默认端口是8080
查看端口占用情况:
    netstat -ano
    查找占用端口的pid,在任务管理器找到pid
    对应的进程
修改tomcat默认端口:
    conf/server.xml
          <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
配置tomcat用户名和密码:
    conf/tomcat-users.xml
        <role rolename="manager-gui"/>
        <user username="tomcat" password="123456" roles="manager-gui"/>
部署静态网站:
    将web应用(网站)部署到
    webapps下    
tomcat7集成到myeclipse中:
myeclipse 将web工程生成war文件:    
jsp:
    Java server page
    运行在服务器端的Java页面
    使用HTML嵌套Java代码实现
    新建一个jsp:
    jsp的三个编码都要设为UTF-8
    jsp页面写Java代码:
        <%
            java代码...
        %>
    jsp的注释:
        ctrl+shift+/
        <%--  
          --%>
    jsp声明变量/全局变量
        <%!
            int i=1;
         %>
    *jsp的执行原理:
        index.jsp--->index_jsp.java-->index_jsp.class
        客户端发送请求访问web服务器下jsp页面,
        jsp页面会自动转换为java文件(servlet程序)
        ,再编译成class文件,
        最终被执行响应到浏览器显示
web程序常见错误
    404:找不到页面
    500:jsp页面/servlet 报错

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    常见错误处理:
    404
        <error-page>
            <error-code>404</error-code>
            <location>/404.jsp</location>
        </error-page>
    500
        <error-page>
            <exception-type>java.lang.Exception</exception-type>
            <location>/500.jsp</location>
         </error-page>
jsp常用标签
    *静态包含和动态包含
        a.静态包含<%@include file="two.jsp" %>
            先包含再处理
        b.动态包含
            <jsp:include page="two.jsp"></jsp:include>
            先处理再包含
        第二个页面没有逻辑处理,尽量用静态包含,
        比如一些公共的页面,用静态包含引入
    jsp转发标签
        <jsp: forward>
    
jsp实现数据传递
    九大内置对象:
        out,request,response
        session,application,page
        pageContext,config,exception
    接收表单提交的数据:
        HttpServletRequest类
            request.getParameter();
            request.getParameterValues();
    中文乱码问题
        post提交方式:
            request.setCharacterEncoding("UTF-8");
        get提交方式:
            治标(对字符串进行转码):
                String getUname = new String(uname.getBytes("ISO-8859-1"),"UTF-8");
            治本方法:
                修改tomcat的server.xml
                URIEncoding="UTF-8"
                useBodyEncodingForURI="true"
            <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"  URIEncoding="UTF-8"/>
    请求中保存属性:
        request.setAttribute(String name,Object obj);
        request.getRequestDispatcher(url).forward(request,response);    
        案例:
            login.jsp 
            dologin.jsp 处理登录 
                判断用户名 admin ,密码 bdqn
                登录成功跳转到首页index.jsp,
                显示一条消息:登录成功!
                登录失败:
                    跳回登录页面,显示一条消息
                    用户名或密码错误!
转发和重定向
    转发:
        request.getRequestDispatcher(url).forward(request, response);
    重定向:
        response.sendRedirect("url")
    转发和重定向的区别:
        转发(服务器端行为):    
            url不变
            一次请求
            携带请求
            目标url仅当前web应用
        重定向(客户端行为):    
            url改变
            两次请求
            不携带请求
            目标url任意的url
会话技术
    1.cookie
        Cookie是客户端技术
        浏览器对一个网站最多支持20个cookie
        所有的cookie总和不超过300个
        cookie的大小限定为4KB
        cookie目前不支持中文
        新建一个cookie?
            a.创建cookie
                Cookie mycookie = new Cookie(key,value);
            b.设置path
                浏览器将此 cookie 返回到的服务器上的路径。
                cookie 对于服务器上的所有子路径都是可见的。 
            c、设置最大存活时间
                public void setMaxAge(int expiry)
                设置 cookie 的最大生存时间,以秒为单位。
        案例:
            上一次访问时间:
            
            记住用户名和密码:
                下一次访问登录页面自动填写
                用户名和密码
    2.session
        服务器端行为
        为每个访问的用户,分配一个独立的session
        session默认存活时间是30分钟
        *session 原理:
            底层还是cookie,cookie的name是JSESSIONID 
            value是httpsession对象的ID值
            该cookie存活时间是浏览器进程
            path 是 当前web应用的path
            
        在web.xml配置session的过期时间(单位分钟)
        session.setMaxInactiveInterval();//单位为秒

        程序注销session
        session.invalidate();
        session.removeAttribute();//清除对应的session
application
        作用域是当前web项目
        session的作用域是一个会话
        request的作用域是当前请求    
转发:
    跳转本web项目的其他URL,尽量用转发
重定向:
    一般用于跳转到首页,跳转到
    其他的URL
--------------------- 
作者:高振05 
来源:CSDN 
原文:https://blog.csdn.net/dunegao/article/details/72799734 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tshark 小技巧

将pcap转换成json文件&#xff0c;全部特征名都会在json中 tshark -T json -r D:\test.pcap > test.json合并数据包 mergecap -w all.pcap 1.pcap 2.pcap ...all.pcap: 合并之后的数据包 1.pcap ... 要合并的数据包&#xff0c;可以合并n个

【CodeForces - 1201C】Maximum Median(思维,水题)

题干&#xff1a; You are given an array aa of nn integers, where nn is odd. You can make the following operation with it: Choose one of the elements of the array (for example aiai) and increase it by 11(that is, replace it with ai1ai1). You want to make …

Apollo进阶课程 ④ | 开源模块讲解(下)

目录 1&#xff09;Apollo平台技术框架 2&#xff09;Apollo版本迭代 原文链接&#xff1a;​Apollo进阶课程 ④ | 开源模块讲解&#xff08;下&#xff09; 上周&#xff0c;阿波君与大家讨论了自动驾驶的核心问题——安全性。本期&#xff0c;我们将为大家具体介绍百度Apo…

SM4 简介

SM4 我国国家密码管理局在20012年公布了无线局域网产品使用的SM4密码算法——商用密码算法。它是分组算法当中的一种&#xff0c;算法特点是设计简沽&#xff0c;结构有特点&#xff0c;安全高效。数据分组长度为128比特&#xff0c;密钥长度为128 比特。加密算法与密钥扩展算法…

九大内置对象

指在JSP的<%%> 和<% %>中可以直接使用的对象&#xff1a;没有特别说明可以开关的默认是开启的 一servlet理论上可以处理多种形式的请求响应形式http只是其中之一所以HttpServletRequest HttpServletResponse分别是ServletRequest和ServletResponse的之类 二 Http…

3)机器学习基石笔记 Lecture3:Types of Learning

目录 1&#xff09;Learning with Different Output Space Y 2&#xff09;Learning with Different Data Label 3&#xff09;Learning with Different Protocol 4&#xff09;Learning with Different Input Space X 在上一节课中&#xff0c;我们学到了第一个机器学习…

【BZOJ - 3436】小K的农场(差分约束)

题干&#xff1a; 背景 小K是个特么喜欢玩MC的孩纸。。。 描述 小K在MC里面建立很多很多的农场&#xff0c;总共n个&#xff0c;以至于他自己都忘记了每个农场中种植作物的具体数量了&#xff0c;他只记得 一些含糊的信息&#xff08;共m个&#xff09;&#xff0c;以下列…

分组密码简介和五大分组模式

分组密码 分组密码&#xff08;blockcipher&#xff09;是每次只能处理特定长度的一块数据的一类密码算法&#xff0c;这里的一块"就称为分组&#xff08;block&#xff09;。此外&#xff0c;一个分组的比特数就称为分组长度&#xff08;blocklength&#xff09;。例如&…

Java Web(五) JSP详解(四大作用域九大内置对象等)

前面讲解了Servlet&#xff0c;了解了Servlet的继承结构&#xff0c;生命周期等&#xff0c;并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解&#xff0c;但是我们会发现在Servlet中编写一些HTML代码&#xff0c;是很不方便的一件事情&#xff0c;每次都…

Apollo进阶课程 ⑤ | Apollo硬件开发平台介绍

目录 1&#xff09;Uber事故原因分析 2&#xff09;自动驾驶的第一天条-----安全 3&#xff09;自动驾驶汽车的硬件系统 4&#xff09;自动驾驶汽车感知类传感器介绍 5&#xff09;自动驾驶汽车的传感器 6&#xff09;自动驾驶的计算单元 7&#xff09;自动驾驶的线控系…

【HDU - 3440】House Man(差分约束)

题干&#xff1a; In Fuzhou, there is a crazy super man. He can’t fly, but he could jump from housetop to housetop. Today he plans to use N houses to hone his house hopping skills. He will start at the shortest house and make N-1 jumps, with each jump tak…

使用tcpdump,adb进行手机抓包

准备 手机 root PC安装ADB 下载压缩包&#xff0c;解压即可 链接&#xff1a;https://pan.baidu.com/s/1Hv-IqpQutBVTHuriakQUTg 提取码&#xff1a;q57q 配置环境变量 在系统环境Path中添加 adb.exe 的地址 验证安装 adb version 出现版本&#xff0c;即为成功 开启adb服…

依赖注入和控制反转的理解,写的太好了。

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念&#xff0c;对于初学Spring的人来说&#xff0c;总觉得IoC 、DI这两个概念是模糊不清的&#xff0c;是很难理解的&#xff0c;今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及…

Apollo进阶课程 ⑥ | 高精地图与自动驾驶的关系

目录 1&#xff09;高精地图与自动驾驶 2&#xff09;什么是高精地图 3&#xff09;高精地图与导航地图 4&#xff09;高精地图---无人驾驶的核心基础模块 5&#xff09;高精地图与定位模块的关系 6&#xff09;高精地图与感知模块的关系 7&#xff09;高精地图与规划、…

【POJ - 1275】Cashier Employment(差分约束,建图)

题干&#xff1a; A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its need. The supermarket manager has hired you to help him, solve his problem. The problem is that the supermarket needs different number of c…

InfluxDB 简介、安装和简单使用

简介 InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go写成&#xff0c;着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据&#xff0c;IoT行业的实时数据等场景。可以理解为按时间记录一些数据&#xff08;常用的监控数据、埋点统计数据…

4)机器学习基石笔记 Lecture4:Feasibility of Learning

目录 1&#xff09;Learning is Impossible 2&#xff09;Probability to the Rescue 3&#xff09;Connection to Learning 4&#xff09;Connection to Real Learning 上节课我们主要介绍了机器学习问题的类型&#xff0c;主要是二元分类和回归问题。本节课&#xff0c;我…

Java注解全面解析

1.基本语法 注解定义看起来很像接口的定义。事实上&#xff0c;与其他任何接口一样&#xff0c;注解也将会编译成class文件。 Target(ElementType.Method)Retention(RetentionPolicy.RUNTIME)public interface Test {} 除了符号以外&#xff0c;Test的定义很像一个空的接口。…

ubuntu18.04下安装grafana6和简单使用

ubuntu18.04下安装grafana6 环境 ubuntu18.04 下载 sudo apt-get install -y adduser libfontconfig1 # 使用wget 下载会很慢 # 推荐百度网盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1y2I4LwuslB5kHAZwV8RNxw 提取码&#xff1a;o19t # 或者csdn&#xff1a;[gr…

【POJ - 1364】King(差分约束判无解)

题干&#xff1a; Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen prayed: If my child was a son and if only he was a sound king. After nine months her child was born, and indeed, she gave birth to a nice son. Unfortu…