javaweb需要掌握什么知识点,javaweb知识点总结
一、WEB应用程序
浏览器/服务器架构
基于HTTP传输协议(超文本传输协议,回想起HTML的名字:超文本标记语言)
web程序必须运行在WEB容器上,如Tomcat /Jboss/WebLogic等。
二、HTTP协议
HTTP TCP作为其支持的传输层协议,默认端口为80(默认端口)。
超文本传输协议(HTTP)是应用层协议。HTTP是一种请求/响应协议,即客户端与服务器连接后,向服务器发送请求。服务器收到请求后,给出相应的响应信息。
HTTP请求消息由四部分组成:请求行、请求头、空行和请求包体。下面是对请求消息格式的简单分析:
请求行:请求行由三部分组成:方法字段、URL字段和HTTP协议版本字段,用空格分隔。常见的HTTP请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE和CONNECT。
GET:当客户机想要从服务器读取资源时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应消息的数据部分,并发送给客户端,也就是向服务器请求资源。当使用GET方法时,请求参数和相应的值被附加到URL,使用问号("?)表示URL的结束和请求参数的开始,传递的参数长度有限。比如/index.jsp?id=100op=bind .
POST:当客户端向服务器提供更多信息时,可以使用POST方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器进行处理。GET一般用于获取/查询资源信息,POST会附带用户数据,一般用于更新资源信息。POST方法将请求参数以名称/值的形式封装在HTTP请求数据中,可以传输大量数据;请求头:请求头由关键字/值对组成,每行一对,关键字和值由英文冒号“:”分隔。
请求头通知服务器有关于客户机请求的信息。典型的请求头有:
用户代理:生成请求的浏览器类型;
接受:客户端识别的响应内容类型列表;星号“*”用于按范围对类型进行分组,用“*/*”表示所有可接受的类型,用“type/*”表示可接受类型的所有子类型;
Accept-Language:客户可接受的自然语言;
Accept-Encoding:客户端可接受的编码和压缩格式;
Accept-Charset:可接受响应的字符集;
Host:请求的主机名,允许多个域名在同一个IP地址,即虚拟主机;
连接:连接方法(关闭或保持活动);
Cookie:存储在客户端扩展字段中,发送给该域所属的相同域名cookie的服务器;
空行:最后一个请求标题后面是一个空行。发送回车和换行符来通知服务器下面没有更多的请求头;
请求体:请求体不在GET方法中使用,而是在POST方法中使用。POST方法适用于客户需要填写表单的情况。与请求主体相关的最常用的是主体类型Content-Type和主体长度Content-Length。
下面对响应报文格式进行简单的分析:
状态行:状态行由HTTP协议版本字段、状态码和状态码描述文本组成,用空格分隔;状态代码由三位数字组成,第一位数字表示响应类型。常用的状态代码有以下五类:
1xx:表示服务器收到客户端请求,客户端可以继续发送请求;
2xx:表示服务器已成功接收到请求并对其进行了处理;
3xx:表示服务器要求客户端重定向;
4xx:表示客户端的请求有非法内容;
5xx:表示服务器未能正常处理客户端请求,出现意外错误;
状态码描述文本有如下取值:
200 OK:表示客户端请求成功;
400错误请求:表示客户端请求有语法错误,无法被服务器理解;
41 Unauthenticated:表示请求未经授权,此状态码必须与WWW-Authenticate头字段一起使用;
403禁止:表示服务器收到请求,但拒绝提供服务,通常在响应体中给出不提供服务的原因;
404未找到:请求的资源不存在,例如输入了错误的URL
500内部服务器错误:表示服务器发生意外错误,导致客户端请求无法完成;
503服务不可用:表示服务器目前无法处理客户端的请求,一段时间后服务器可能恢复正常;
三、Servlet
Servlet是javaWEB的核心。简单来说就是用Java写的服务器端程序。当用户发出动态请求(静态请求是指直接请求HTML)时,他实际上请求的是一个servlet。
WEB容器将Servlet加载到内存中,并通过init方法初始化它。
Service()方法根据请求方法调用相应的处理方法doPost()或doGet(),还有一些其他的请求方法doPut()doo options().但这些方法并不常用,从安全角度考虑,建议屏蔽这些方法。
当服务器不再需要Servlet时(通常是服务器关闭时),服务器调用Servlet的destroy()方法。
四、JSP
Java Server Pages是Java静态编码和动态编码的混合技术。还有一种说法是Java代码嵌入在HTML中。JSP之前是以Servlet为主体,功能强大,设计先进。但是HTML页面完全是Java的out.print(),一行一句的输出,非常不方便页面的编写和修改,这促使SUN公司推出了JSP。JSP是一种类似于ASP和PHP的马赛克语言。另外,当WEB容器向后移动时,它会将_JSP编译成Servlet。也有人说JSP是Servlet的升级版。
五、Tomcat
有许多Java WEB容器。这里以Tomcat为例。如前所述,WEB程序必须运行在WEB容器上。Tomcat被用作运行Java WEB程序的WEB容器。Tomcat是用JAVA语言编写的,需要JVM作为运行环境。
Tomcat目录结构
本……本……本……本……本……本
主配置文件......................
解放运动......................
日志……日志……日志
温度……温度……
网络应用程序
作品……作品……作品……作品
补充一下,Tomcat没有实时把jsp编译成Java文件,所以有时候页面被修改了,没有及时生效。这时,我们只需要在工作目录中删除相应的文件。
六、Java WEB项目结构
一般来说,我们常说的Java项目基本都是WEB项目(B/S架构),并不是说Java做不了C/S程序。其实Java的Swing是为了画图界面,但是现在C#已经成为最流行的画图界面语言,又快又简单,所以用Java进行C/S程序开发的人越来越少了。主要说一下Java WEB项目。下面是最基本的项目结构。
src {\\ lang 1033 ,}
web content/webRoot………………………………………………………………………………………………………………………………………………………………………………………………………
WEB-INF
Lib ……………………………………
Web.xml ……………………………………………………………
这些是Java WEB项目的核心结构。即将
对于这类功能的扩展和维护比较麻烦,所以推动了很多集成开发框架的普及,比如Webwork、Struts、SpringMVC、Jfinal等等,这些都是主流的Java WEB开发框架。
有一个使用框架的优点的一般总结,它可以加速开发过程。在类似的项目中重用代码将会节省开发人员大量的时间和精力。该框架为执行单调乏味的代码任务提供了预构建的模块。让用户只关心核心业务的发展,框架帮你屏蔽原有技术与业务发展无关的各种技术问题。但如果你想深入了解一个框架,更熟练地使用它,你还是需要了解它的底层原理,找到它的源头,即Servlet。
七、开发框架
SprfngMVC主要通过dispatcher Servlet(Servlet dispatcher,配置在web_xml中)实现Servlet接口,也称为前端控制器。前端的请求会先到达这里,它负责在后台匹配合适的处理程序。以SpringMVC为例简单描述一下工作原理
1.客户端向web服务器发送http请求,web服务器解析http请求。如果它与DispatcherServlet的请求映射路径(在web.xml中指定)匹配,则web容器将请求转发给DispatcherServlet。
2.DipatcherServlet收到这个请求后,会根据请求的信息(包括URL、Http方法、请求头和请求参数Cookie等)找到处理请求的处理器控制器(Handler)。)以及HandlerMapping的配置。
3.DispatclierServlet根据HandlerMapping找到对应的处理程序,将处理能力交给处理程序(处理程序封装了具体的处理),然后具体的HandlerAdapter对处理程序进行具体的调用。
5.处理程序处理完数据后,将向DispatcherServlet返回一个ModeAndView对象。
6.Handler返回的ModelAndView只是一个逻辑视图,不是正式视图。Di spatcherSevlet通过ViewResolver将邀请视图转换为真实视图视图(这句话简单来说就是返回一个要返回的页面的相对路径,通过尝试解析将其转换为特定页面)。
7.Dispatcher通过model对ModeAndView中的参数进行分析,最终展现一个完整的视图并返回给客户端。
八。用SpringMVC编写功能模块
因为框架配置工作量大,还需要了解各种技术,所以暂时不描述。先简单说一下实际发展,DispatcherServlet的主要工作流程如下:
1.首先要有一个登录入口(JSP页面)。在SpringMVC框架中,我们不建议直接访问JSP页面,所以对我们登录页面的访问也是在后台处理的;
2.编写ogin.jsp页面,登录返回index.jsp页面;
3.写LoginController,包含两个请求控制方法,一个是pleLogin(),一个是doLogin(),其中pleLogin()负责处理登录页面的请求(返回login.jsp),doLogin()处理登录请求并返回给index.jsp。
4.在login,登录请求需要通过表单或ajax。
请求/预登录业务逻辑处理返回login.jsp,输入用户名、密码…
请求/doLogin业务逻辑处理,并将登录结果返回index.jsp。
如何在现有的框架基础上完成一个功能模块,了解功能的基本流程,以登录为例:
数据库操作,Jdbc/Hibernate/Mybatis
JSP,EL表达式,Struts标签,C标签等。
基础前端技术CSS/JS/jQuery/Ajax是javaweb必备知识点的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。