笔记之_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
时间: 2024-08-11 09:52:02

笔记之_java整理servlet的相关文章

笔记之_java整理框架

This依赖于对象,static依赖于类 字符串的模糊查询: instr(empName,?)>0 empName like '%白%' Create view 表名 as 多表连接 视图是临时表 多表连接语句生成,查询工具点开 <T,K>泛型可以用多个 ResultSetMetaData取得列名集合,rst.getMetaData Reflect反射,Field[] 实例化对象方法: New student(); Student.class.newInstance(); Class.f

笔记之_java整理hibernate

页面调试数据: <%@taglib uri="/struts-tags" prefix="s" %> <s:debug></s:debug> Js清除缓存 使用hibernate延迟加载时,并且数据库有关联关系,转换成json对象时不能直接转换,要用new JSONObject(),然后put()方法存值 国外框架项目地址:http://websystique.com/springmvc/spring-mvc-4-angularj

笔记之_java整理JavaScript

1.javascript 面向对象这一块 1). javascript的基本数据类型有哪些? Number (数字) 1 1.2 String (字符串) '' "" Boolean 布尔 true false Undefined 未定义 Null 空 2).javascript的引用数据类型有哪些? Object {}. 函数 function . 数组 [] 2.javascript定义对象,动态扩冲里面的变量或者属性 var a =new Object(); //实例化一个对象

笔记之_Java整理Spring MVC

springMVC原理讲解地址:http://www.cnblogs.com/dragonfei/p/6148625.html Ionic2和angularjs2和angularjs和nosql菜鸟教程一起是做手机的 https://www.bilibili.com/video/av8614724/index_10.html是ionic2公开课地址 FreeCMS DeDeCMS风信网,数据库表结构 DEDECMS简单建站 Filter和Interceptor的区别 Filter是基于函数回调的

笔记之_Java整理jquery

$.extend扩展 Jquery的bin绑定事件,unbind取消所有事件 http://jquery.cuishifeng.cn/ Jquery学习地址:http://www.runoob.com/jquery/jquery-plugin-validate.html Jquery学习地址:http://www.haorooms.com/post/jquery_selecter_zj 使用ajax的jsonP跨域请求数据,需要在服务器对数据进行处理 ajax跨域请求会传过来一个参数如callb

笔记之_Java整理IO流

线程重复执行: ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); exec.scheduleAtFixedRate(线程名, 1, 1, TimeUnit.SECONDS); 字符输出流writer写完后要执行flush()方法,不然内容不存在 IO流:实时交互 Socket网络交互 多线程和socket合为一体 所有软件几乎都会有多线程,所有跟网络有关的必须要使用socket 大多数的程序只能循环运行单独的

笔记之_java整理html5

查看手机唯一标识:http://html5plus.org/doc/zh_cn/device.html#plus.device.uuid html和html5的区别? html5+css3也逐渐的成为新一代web前端技术,最要用处在开发手机网站. 文档网站:http://www.w3school.com.cn/html5/index.asp HTML5的新功能 (1).强大的绘图功能 (2).新增音频/视频标签 (3).浏览器离线存储 (4).通过浏览器进行定位 外网连接局域网的项目:花生壳?内

笔记之_java整理kindeditor文件上传插件

下载插件压缩包 图片创建虚拟服务器路径: 在Tomcat中,打开Tomcat的系统文件夹servers,打开下面的server.xml, 在<Context docBase="class" path="/class"--/>标签中,修改绝对路径docBase和虚拟路径path ,绝对路径是磁盘上创建的保存图片的文件夹,虚拟路径是网页访问图片的路径, 根据自己要用的上传文件的类型,选择插件的相关案例,引用css.js,修改路径以及页面类型jsp.php,

笔记之_Java整理css3

微传单:http://s.wcd.im/index.jsp?id=9661Zi9&flyerAid=9661&p&loading=0&fromOfficial Friendly同包访问 子类重写方法的修饰符必须大于等于子类定义好的访问修饰符 类是抽象的对象是现实存在的 局部变量必须先赋值才能使用 一个Java文件可以包含n个类智能有一个是public并且与文件名一致 接口继承接口,方法名相同不是重写是覆盖 实现接口的类不是抽象类,则必须实现接口及其父级接口的所有方法 Str