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

来源:互联网 发布:双色球开奖历史数据库 编辑:程序博客网 时间:2024/06/05 12:03
(八)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

原创粉丝点击