我最近一直在看这个的java web项目涉及到的知识,今天突然感觉思路烁然开明。

我们经常会将java web开发说成是MVC
V: view 我在这里姑且就介绍JSP吧。JSP其实就是在原来的静态页面中注入java语句,让页面做个可控操作。
JSP:java server page
当然,页面与页面之间是如何通信的,这里就涉及到server了。
在我们的项目中,涉及到通信的处理,我们会放入所谓的服务器中。在这里就介绍tomcat.
作为一种开源的tomcat服务器,它对小型的通信处理还是绰绰有余的。
原理其实也很简单:
C 页面向固定的URI发送Socket,我们在java虚拟机中开启一个serverSocket,这样,如果接受到了这个Socket,我们就可以获取到这个Socket
所携带的URI,这样,我们也就获取了,我所传的参数及传给谁参数。这里一般会有那个对象可能是接受参数的对象,一个是页面,一个是
servlet。其实判断他们也很简单,通过uri判断地址是否含有“/servlet/”,然后根据在xml中定义<server>找到相应的信息,然后再通过
java的反射机制创建一个新的对象。
插入一下,介绍一下request和response。
request其实在整个过程中起到的是,将serverSocket获取的socket的uri进行各种处理和封装,进而我们可以简单了通过几个get方法,
就获取了我们想要的信息
response其实就是将输出流写入页面
这时,就实际到了我们如何去寻找.class,如何添加自己的过滤条件等等,当然这时,struts2框架就很好的解决了我们这方面的缺憾,它不仅对
xml中映射关系做了响应自己的配置处理,并且也对servlet做了处理,我们不在需要去关心servlet的生命周期,uri的请求方式(post、delete、get)
等等信息,我们现在仅仅需要将文件配置正确,我们只要继承和实现这个接口就可以了,我们专心做自己的业务处理。当然,struts2也提供了很多过滤器,
方便我们对用户权限等操作处理
M 我们在做业务处理小不了要对数据进行操作,这样,在数据库处理时,由于项目的任务越来越繁重,一开始的单线操作肯定是不行了,这里也就引入了数据
连接池的概念。hibernate的出现解决了ORM的类型转换(配置文件),sql的封装,事务的处理。这样程序员只要对java实例对象处理就可以做到对数据库的
处理。
其实让人们发现,如果能将程序程序时,如果我们要调用一个对象,我们需要new这个对象,然后就可以对这个对象进行操作。但是如果业务处理繁琐了,
原有的方式操纵就是显得可读性变得低了。IoC就解决这个问题,我们现在调用对象是,程序自己将这个对象创建给我们,这样我们可以通过两种方式,
一种是xml配置这些信息,一种是java提供的注解。
当我们需要在创建对象时做自己的处理,这里提到的AOP,官方说是面向切面编程。其实,我们知道,它只不过是java的动态代理。
当然,Spring就如一个大观园,提供了支持几个开源框架的接口,也有自己的持久层处理等等

是不是觉得很不可思议,整个javaweb项目,涉及到的几个开源框架就这么多。其实涉及到java知识大体上有:
socket、java的反射、注解、对xml的解析等

web开发小节.txt的更多相关文章

  1. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?   什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...

  2. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  3. Web开发基本准则-55实录-Web访问安全

    Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点.尤其是一些从传统软件开发转入互联网开发的工程师,请仔细阅读,不要因为忽视 ...

  4. 移动Web 开发中的一些前端知识收集汇总

    在开发DeveMobile 与EaseMobile 主题 的时候积累了一些移动Web 开发的前端知识,本着记录总结的目的,特写这篇文章备忘一下. 要说移动Web 开发与传统的PC 端开发,感觉也没什么 ...

  5. 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的

    前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的”每个程序员必知之WEB开发”. 原文: http://programme ...

  6. Flask —— 使用Python和OpenShift进行即时Web开发

    最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评.Flask是一个很流行的Python框架.那本书是Ron DuPlain写的<Flask 即时Web开发>.我决定 ...

  7. Web开发——Http协议剖析

    Http,即超文本传输协议,是建立在TCP/IP协议的基础上.在Web开发的过程中,Http协议是十分重要的,浏览器与服务器之间的交互就是基于Http协议的.Http协议如果展开全面讲解会有很多内容, ...

  8. Web开发需要关注的技术细节

    摘要:在网站发布前,开发者需要关注有许多的技术细节,比如接口设计.用户体验.安全性.Web标准.性能.SEO等,倘若一个疏忽就会影响到整体的体验效果.作为一名Web开发者,哪些技术细节需要考虑呢? [ ...

  9. 【转】web开发需要知道的事情

    在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需 ...

随机推荐

  1. iOS开发——免证书调试(Xcode7,iOS9)

    (资料已做好,待整理成文章……)

  2. C#一些小技巧

    在C#实现类似Typedef的所有功能 Typedef这个关键字,是比较好用的东西,因为有时候我们需要使用一些别名来帮助我们记忆某些结构体或者类的共用.(个人觉得这是C与C++唯一能吸引我的东西)为了 ...

  3. objective-c在Xcode中@property相关参数的解释

    objective-c在其对象拥有成员变量时,我们为了保持代码的封装,会将成员变量设置为@protected,并为成员变量编写setter和getter方法. 如: @interface Person ...

  4. js【输入一个日期】返回【当前12个月每月最后一天】

    Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + ...

  5. 02_Jquery_04_属性选择器

    [简述] [index.jsp] <%@ page language="java" import="java.util.*" pageEncoding=& ...

  6. 自定义类模板 重载<<遇到的问题

    类内声明 friend ostream& operator<<(ostream& os,const store<T> &item); 类外实现 temp ...

  7. 九度OJ 1077 最大序列和 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1077 题目描述: 给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”. 对 ...

  8. linux采用模块方法,添加一个新的设备

    该文转载自:http://rangercyh.blog.51cto.com/1444712/521244 系统调用是操作系统内核和应用程序之间的接口,而设备驱动程序是操作系统内核和机器硬件之间的接口. ...

  9. Python没有执行__init__

    疑惑 提出问题 前天同事问我一个问题,为什么这个脚本中的没有调用A 的__init__.脚本如下: class A(object): def __init__(self, *args, **kwarg ...

  10. 远程mysql出现ERROR 1130 (HY000): Host '172.17.42.1' is not allowed to connect to this MySQL server

    ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server 说明所连接的用户帐号没有远程连接的权限, ...