JavaWeb

前言

servlet是用于开发web后端程序的一种java技术实现,利用servlet编写的程序通过服务器部署之后,可以处理浏览器发送的HTTP请求,也就是B/S模型,请求的响应和处理是由服务器完成的,压力都分担在服务器上。

在这里插入图片描述

一、Servlet

Servlet的生命周期

ServletConfig

在GenericServlet中的init方法中初始化,也就是每一个Servlet都有一个ServletConfig,见名知意,就是servlet的配置信息,可以获取到上下文对象,以及servlet的名称和初始化时的参数信息(参数信息可在web.xml的servlet中init-params设置)

声明周期

在浏览器第一次请求这个servlet是创建,只会创建一个对象,也可以在servlet中设置在程序启动时创建

Servlet中常用类

HttpServletRequest(请求对象)

可以获取到服务器发送的HTTP请求协议中的相关数据
getParameter()
getparamteters();
getMethod();
getUrl/Uri()
getHeader();
getSession();
getServletContext();
getRequestDispatcher("").forward(request,response);请求转发

HttpServletResponse(响应对象)

将请求处理好之后的结果返回给浏览器显示
getWriter();获取IO写入数据
setCookie();返回cookie
sendRedirect();重定向

Filter(过滤器)

判断用户是否登录,是否具有权限
修改字符编码
使用ThradLocal存储一个Connection数据,用来保证当前线程中所有的sql语句都是使用的同一个Connection,这样在过滤器调用完成时或者出错时,在doFileter方法中获取Connection进行提交或者回滚

Listener(监听器)

监听域对象的声明周期,以及属性的增删改查监听

请求对象和响应对象的声明周期

Servlet中的域对象

ServletContext

全局的,程序启动时初始化

HttpServletRequst

存在一次会话中

HttpSession

会话域对象,设置存活时间

Cookie(不算的,是存在在浏览器端的,但是也可以存储数据)

Servlet中请求跳转

请求转发

只能访问当前项目中的文件信息
可以访问WEB-INF中的隐藏文件
共享一个request对象
发生在服务器内部,浏览器只会条件一次请求

重定向

浏览器不停向服务器发送请求
减少了服务器的压力
耗时,英文要向另外一个服务器发起请求

二、JSP

原理

返回处理结果时,如果需要返回一个新的HTML页面,那么需要我们手动的利用resposne对象利用输出流写入手动拼接的字符串返回,

利用JSP文件可同时写入java和html语言,后面不常用,因为难以维护,既有java代码又有前端html代码,本来在后面的基于注解的大型项目开发也是难以维护的,因为你不知道在什么地方使用了注解,修改就很麻烦,更别说这个有如此之多的前端代码了

JSP实质上就是Servlet类,之所以能够写入Html代码,当浏览器首次请求这个JSP文件时,服务器和往常一样,编译成Java文件(自动将html利用输出流写入到响应包中,并且里面还封装类常用的域对象),然后编译为.class文件,最后创建对象

继承了HttpJspBase–>继承了HttpServlet
_jspService,重写调用service方法

使用


        <% if(null!=list){
            Iterator<User> it = list.iterator();
            while(it.hasNext()){
                User user = it.next();
        %>
        <tr>
            <td><%=user.getUserName()%></td>
            <td><%=user.getPassword()%></td>
            <td><%=user.getUserSex()%></td>
            <td><%=user.getUserAge()%></td>
            <td><%=user.getUserEmail()%></td>
            <td><input type="checkbox" name="userId" value="<%=user.getUserId()%>"></td>
            <%--<td><a href="/ExamSystem/delete?userId="+<%=user.getUserId()%>>删除用户</td>--%>
        </tr>
        <%
            }
        %>
        <%
            }%>

常用对象

appliction(全局)

out(response.getWriter)

request (HttpServletRequest)

pageContext (JSP上下文对象)

config(ServletConfig)

session(HttpSession)

response(HttpRequestResponse)

exception (Exception)

page (指向当前JSP的对象)

EL表达式

使用

对JSP基础的输出语法<%=%>改为了 ${作用域对象.作用域对象存储的k-v值得key},
${requestScope.student.getName()},获取request作用域对象中的student类的姓名

域对象scope

page/request/session/application+Scope,在${}中取值可以省略域对象,获取顺序是pageScope—>requestScope—>sessionScope–>applicationScope

在这里插入图片描述

JSTL表达式

使用

1、先导入 jstl 标签库的 jar 包。 taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar
2、第二步,使用 taglib 指令引入标签库。 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
3、test
if:<c:if test=" 12 = = 12 " > < h 1 > 12 等 于 12 < / h 1 > < / c : i f > s w i t c h / c a s e : < c : c h o o s e > < c : w h e n t e s t > / < c : w h e n t e s t > < / c : c h o o s e > f o r : < c : f o r E a c h b e g i n = " " e n d = " " i t e m s = " { 12 == 12 }"> <h1>12 等于 12</h1> </c:if> switch/case:<c:choose><c:when test>/<c:when test></c:choose> for:<c:forEach begin="" end="" items=" 12==12"><h1>1212</h1></c:if>switch/case:<c:choose><c:whentest>/<c:whentest></c:choose>for:<c:forEachbegin=""end=""items="{集合/数组对象}" var=“变量名”></c:forEach>

三、Ajax

JavaScript

创建XmlHttpRequest对象,设置method,url发送,并且监听request的生命周期,如果返回值为4表明已经收到数据,如果status=200表示请求成功

JQuery

$.ajax(
{
“url”:"",
“type”:“默认是get”,
“data”:{
“name”:“ly”,
“password”:“123”,
}
success:function(data){},
dataType:“text/html/json” //返回的数据类型
}
)

$.get/post()
在这里插入图片描述

五、HTTP协议

状态码

100:返回的资源不是完成的信息,如还需要从服务器上获取图片,
200,返回的是完整的正确的信息
300:重定向
400:畸形的参数错误,前后端contentType不匹配
404:资源未找到
405:get/post请求方式不对
500:服务器端出现异常

协议包信息

请求头

在这里插入图片描述

响应头

在这里插入图片描述

总结

1、了解JavaWeb开发流程,了解Filter和listener,了解对象声明周期

2、程序封装:BaseServlet,BaseDao,JdbcUtil(使用线程池获取),分页

3、JSP,EL,JSTL

4、JSON和AJAX

JavaWeb的jar包 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.1.jar aspectjrt-1.6.0.jar aspectjtools-1.6.0.jar aspectjweaver-1.6.0.jar bcprov-jdk16-1.46.jar c3p0-0.9.1.2.jar cas-client-core-3.3.3.jar cglib-2.2.2.jar commons-beanutils-1.8.0.jar commons-cli-1.2.jar commons-codec-1.9.jar commons-collections-3.2.1.jar commons-dbcp-1.4.jar commons-fileupload-1.3.1.jar commons-httpclient-3.1.jar commons-io-2.4.jar commons-lang-2.6.jar commons-lang3-3.3.2.jar commons-logging-1.1.1.jar commons-net-3.5.jar commons-pool-1.6.jar DataCenter-util-0.0.1-20161202.072205-3.jar DmDialect-for-hibernate4.0-jdk1.6.jar dom4j-1.6.1.jar elasticache-java-cluster-client-1.0.61.0.jar ezmorph-1.0.6.jar freemarker-2.3.8.jar ftp-1.0.0.jar ggserver-core-1.0.jar ggserver-thematic-1.0.jar gson-1.6.jar hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.8.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar httpclient-4.0.jar httpclient-4.1.1.jar httpcore-4.0.jar httpcore-4.1.jar httpcore-nio-4.0.jar httpmine-4.0.jar ibatis-2.3.4.726.jar jackson-all-1.7.4.jar jackson-annotation-2.3.0.jar jackson-core-2.3.3.jar jackson-databind-2.3.3.jar java_websocket.jar javassist-3.11.0.GA.jar jaxen-1.1.jar jboss-logging-3.1.4.GA.jar jboss-logging-annotations-1.2.0.Final.jar jboss-transaction-api_1.2_spec-1.0.0.Final.jar jcifs-1.3.17.jar jcl-over-slf4j-1.7.10.jar jdom-2.0.5.jar jmemcached-core-1.0.0.jar jmock-1.2.0.jar jmock-cglib-1.2.0.jar jodconverter-2.2.2.jar jodconverter-cli-2.2.2.jar json-20140107.jar json-lib-2.2.3-jdk15.jar jsqlparser-0.8.0.jar jstl-1.2.jar juh-3.0.1.jar jurt-3.0.1.jar jzlib-1.1.3.jar log4j-1.2.16.jar mongo-java-driver-3.2.2.jar mysql-connector-java-5.0.8.jar ognl-3.0.5.jar ojdbc6-1.0.jar pdfbox-app-1.6.0.jar poi-3.12.jar poi-examples-3.12.jar poi-excelant-3.12.jar poi-ooxml-3.12.jar poi-ooxml-schemas-3.12.jar poi-scratchpad-3.12.jar ridl-3.0.0.jar simple-spring-memcached-3.5.0.jar slf4j-api-1.6.0.jar slf4j-log4j12-1.6.0.jar solr-solrj-3.4.0.jar spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-cache-3.3.0.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar spring-data-commons-1.10.0.RELEASE.jar spring-data-mongodb-1.7.0.RELEASE.jar spring-expression-4.1.6.RELEASE.jar spring-instrument-4.1.6.RELEASE.jar spring-instrument-tomcat-4.1.6.RELEASE.jar spring-jdbc-4.1.6.RELEASE.jar spring-jms-4.1.6.RELEASE.jar spring-messaging-4.1.6.RELEASE.jar spring-orm-4.1.6.RELEASE.jar spring-oxm-4.1.6.RELEASE.jar spring-security-acl-3.1.6.RELEASE.jar spring-security-aspects-3.1.6.RELEASE.jar spring-security-cas-3.1.6.RELEASE.jar spring-security-config-3.1.6.RELEASE.jar spring-security-core-3.1.6.RELEASE.jar spring-security-crypto-3.1.6.RELEASE.jar spring-security-ldap-3.1.6.RELEASE.jar spring-security-openid-3.1.6.RELEASE.jar spring-security-remoting-3.1.6.RELEASE.jar spring-security-taglibs-3.1.6.RELEASE.jar spring-security-web-3.1.6.RELEASE.jar spring-test-4.1.6.RELEASE.jar spring-tx-4.1.6.RELEASE.jar spring-web-4.1.6.RELEASE.jar spring-webmvc-4.1.6.RELEASE.jar spring-webmvc-portlet-4.1.6.RELEASE.jar spring-websocket-4.1.6.RELEASE.jar struts2-core-2.3.20.jar struts2-json-plugin-2.3.20.jar struts2-sitemesh-plugin-2.0.14.jar struts2-spring-plugin-2.3.20.jar trove4j-2.0.2.jar ueditor-1.1.1.jar unoil-3.0.1.jar userSystem-1.0.jar velocity-1.5.jar xmemcached-2.0.0.jar xmemcached-provider-3.5.0.jar xmlbeans-2.6.0.jar xom-1.1.jar xpp3_min-1.1.4c.jar xstream-1.3.1.jar xwork-core-2.3.20.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值