笔记之_java整理servlet

Get请求与与post请求:
    Get不会改变服务器数据,只做查询
    Post会对服务器数据做出修改,可评论的网页
火狐的firebug附加组件,可以测试网络
延迟实例化,提供一个set方法,让子类实现赋值
父类引用指向子类实现
Jquery  easyUI中文文档
Pojo简单的实体类对象
Json  Object和jsonArray不可以直接进行日期转换,List<>可以
Html5删除<!DOCTYPE  HTML后的内容>
引入jquery后用$()代替了window.onload、$(‘#dg’)代替了document.getElementById(‘dg’)
META-INF下新建resousecss、imge、js、plugins文件夹
doGe()要取数据的时候用,doPost()不需要取数据时
Int超过最大值,i的32次方+1就溢出,变为0
((对象名)null).静态方法,相当于直接调用静态方法
Union合并数据,但排除重复的数据
Union all合并数据,不做数据重复处理
Java中:静态代码块,构造代码块,普通构造的优先级
父类静态代码块子类静态代码块父类构造代码块子类构造代码块父类普通构造子类普通构造
CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。
组成CGI通信系统的是两部分:一部分是html页面,就是在用户端浏览器上显示的页面。另一部分则是运行在服务器上的CGI程序
CGI 在jsp中 叫Servlet
在服务器中,像html,css,javascript, 图片,文本文件,xml 直接交给浏览器来处理的,除了以上文件以外的信息,都是要交给服务器处理
servlet容器又叫做 servlet引擎
                      InputStream            OutputStream
Servlet引擎:接收用户传过来的数据解析处理响应给用户
                  I/O流( 二进制数据 ) 
servlet容器,它里面的每一个servlet小程序都有自己的生命周期
  Servlet都有生命周期:   public  class  A  extends  HttpServlet
   初始化   init()            初始化数据
            Init(ServletConfig )  读取本身的servlet配置文件,初始化数据
           重点: init方法  只能初始化一次
                  init方法什么时候初始化? 
                     1)、tomcat启动的时候(你要初始化一些数据,公用的数据)
                         <servlet>
                                  <servlet-name>唯一名称随便取</servlet-name> 
<servlet-class>编写的servlet完整类名</servlet-class>
 < init-param>
         <param-name>参数名</param-name>
          <param-value>值</param-value>
   </ init-param>
   <init-param>
           <param-name>参数名</param-name>
           <param-value>值</param-value>
     </ init-param> 
<load-on-startup>
0-999999数字越小,优先级就越高
</load-on-startup>
</servlet> 
                     2)、当访问servlet时候 (默认的)
                         你必须要配置url映射
                         
                         <servlet>
                        </servlet>
                         <servlet-mapping>
                         </servlet-mapping>
jsp九大内置对象,3大指令,7个动作
servlet 九大内置对象
 page             页面
 pageContext      上下文(全局对象)  在servlet中与 jsp中的application等同效果
 request           请求
 response          响应
 out               输出
session            会话(当前用户,所有页面都可以共用的数据)  一次完整的会话,打开浏览器,输出网址,再新建页,关闭浏览器
 application         所有用户,所有页面都可以共用的数据
 config             配置信息  (web.xml)
 exception          异常
  1)、page,request,session,application   取值和赋值
      xx.setAttribute("键名", 值);    赋值
      Object obj= xx.getAttribute("键名");     取值   被EL表达式给优化了 
       ${键名}   
它的查询顺序就: page-->request-->session-->application -->什么都不显示
            ${pageScope}-->${requestScope} -->${sessionScope}-->${applicationScope}
scope:作用域      
        <c:forEach    item="${xx}"  var="a"> </c:forEach>
 2)、pageContext常用方法
     pageContext.request.contextPath  取得项目名称
 3)、request常用方法
     String 值=requet.getParameter("键");
     String[] 值=request.getParameterValues("键");  //checkbox复选框、name标签、 text
     String ip=reqeust.getRemoteAddr()  //取得客户端的ip地址
     String url=request.getRequestURI();//取得当前请求的地址,不带参数   /web/test/1.jsp  
     Enumeration<String> keys=req.getParameterNames();  //得到所有的参数的名称   /web/test/1.jsp?id=1&name=test&te=3
       取得的结果是:id,name,te
       while(keys.hasMoreElements()){
         String k=keys.nextElement();
         //做你想的
         String value=req.getParameter(k);            
         }
      转发   把数据存放到request的setAtrribute里面,url地址不会发生变化
      request.getRequestDispatcher(页面).forward(request,response);
      HttpSession session=request.getSession();  //取得会话
      SevletContext application=request.getServletContext();  //取得上下文应用
      request.setCharaterEncoding("UTF-8");   //设定请求编码 
4)、response  响应
     response.setCharaterEncoding("UTF-8");  //响应的编码
response.setContextType("text/html;charset=UTF-8");  //响应给浏览器的头文件,告诉浏览器这个是网页,编码格式是UTF-8
response.setContextType("text/xml;charset=UTF-8");   //响应给浏览器的头文件,告诉浏览器这个是xml文件,编码格式是UTF-8 
response.setContextType("application/x-download");   //响应给浏览器的头文件,告诉浏览器这个文件,需要你使用自带的文件下载器来处理
response.addHeader("Content-Disposition","attachment;filename=baidu.exe");      PrintWriter  out=response.getWriter();
    out.print(数据);
    out.flush();  //刷新
    out.close();  //关闭
    重定向  不能推荐request中的数据 但是可以对url地址做一些修改   1.jsp?id=2
    response.sendRedirect("页面");
5)、session 会话
    session.getId() 会话id 唯一的
    session.clear()       //清除所有的会话数据
    session.removeAttribute(键) ;  根据键清除数据
6)、application  全局应用 上下文
    servlet中写法: request.getServletContext().removeAttribute(键);
7)、servlet 生命周期
    init()  初始化  只做一次      
    service() 服务 它会自动的根据请求的类型(GET/POST) 调用doGet()/doPost()方法,
destory()  销毁  只做一次(web容器 关闭时候 )
8)、jsp页面之间传递参数有几种方式?
        表单传参
        url传参
        session传参  <% session.setAttribute("xx",1);  %>  另外页面 ${ sessionScope.xx }
        request传参
        数据库
9)、不用<servlet>  2.5 配置了,  servlet 3.0,用注解配置
   @WebServlet(value={"/search.do" , "/show.do" })
   public class MyServlet  extends HttpServlet{
   }
   以前
     web.xml
     <servlet>
            <servlet-name>xx</servlet-name>
           <servlet-class>xxxxx.xxxx.xxx</servlet-class>
      </servlet>

     <servlet-mapping>
           <servlet-name>xx</servlet-name>
           <url-pattern>/search.do</url-pattern>
           <url-pattern>/show.do</url-pattern>
      </servlet-mapping>
找到maven Repository仓库:
百度搜索-->maven repository-->http://mvnrepository.com/官网-->点击主页右上角Indexed Repositories (244)-->找到maven点击Central-->http://central.Maven.org/maven2/
-->进入maven仓库





































编码过滤器:
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter {
    private String encoding = "UTF-8";
    public void init(FilterConfig config) throws ServletException {
        if (config.getInitParameter("encoding") != null) {
            encoding = config.getInitParameter("encoding").trim();
        }
    }
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        // 设定所有请求的编码
        req.setCharacterEncoding(this.encoding);
        resp.setCharacterEncoding(this.encoding);
        resp.setContentType("text/html;charset=" + this.encoding);
        //放行
        chain.doFilter(req, resp);
    }
    // tomcat停止就被销毁
    public void destroy() {
    }
}
编码过滤器web.xml配置:
<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.wisezone.web.filter.EncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
jsp页面日期格式:
    导入%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %
    格式日期<fmt:formatDate value="${s.mes_date }" pattern="yyyy-MM-dd"/>





环境变量配置:鼠标右键点击计算机-->属性-->更改设置-->高级-->环境变量系统变量
    Jdk配置:
        变量1   名字:JAVA_HOME  值:找到安装的jdk的路径
变量2   名字:path     值: .; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
变量3   名字:CLASSPATH值: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    Tomcat配置:
        变量1   名字: CATALINA_BASE   值:找到安装的tomcat的路径
变量2   名字:path    值: .; %CATALINA_HOME%\lib;%CATALINA_HOME%\bin
变量3   名字: CATALINA_HOME值: 找到安装的tomcat的路径
    Mawen配置:
        变量1   名字: MAVEN_HOME  值:找到安装的maven的路径
变量2   名字:path    值: .; %MAVEN_HOME%\bin
使用maven
    Eclipse中
安装helpEclipse marketplace.. find中搜索maven选中图标为m2e的软件install为uninstall表示已经装过了
配置
配置准备:
在一个比较大的硬盘中新建一个文件夹mavenpository/pository
    安装路径下找到config/settings.xml并配置
<mirrors>中添加
    <!--阿里云提供仓库 -->
    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror> 
    <!--国外官网 -->
    <mirror>  
      <id>mavencentral</id>  
      <name>central maven</name>  
      <url>http://central.maven.org/maven2/</url>  
      <mirrorOf>central</mirrorOf>          
</mirror>  
        <localRepository>后添加
<localRepository>E:\mvnrepository\repository</localRepository>
Eclipsewindowsprefeencesmaveninstallationsadd输入安装maven路径点击Directory应用
Eclipsewindowsprefeences User setting勾选添加的maven文件中选中config/settings.xml
    创建maven
Newothermavenmaven project勾选create a simple project下一步填写groupe Id、artiface Id、version、pakaging选war、name等有父级项目的填写对应信息
    项目创建好后点开pom.xml文件添加内容
        <!-- 引用mysql,等项目要用到jar包 -->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.oracle/classes12 -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>classes12</artifactId>
            <version>10.2.0.2.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>
        <!-- 构造 编译项目,使用 jdk 1.8的环境 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
然后将Oracle数据库的jar包复制到D:\mvnrepository\repository\com\oracle
\classes12\10.2.0.2.0中并把文件名改成classes12-10.2.0.2.0.jar

 

posted @ 2017-11-19 16:42  莫轩ASL  阅读(278)  评论(0编辑  收藏  举报