笔记之_java整理servlet
Posted 莫轩ASL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记之_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
以上是关于笔记之_java整理servlet的主要内容,如果未能解决你的问题,请参考以下文章