web开发小节.txt
我最近一直在看这个的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的更多相关文章
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- Web开发基本准则-55实录-Web访问安全
Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点.尤其是一些从传统软件开发转入互联网开发的工程师,请仔细阅读,不要因为忽视 ...
- 移动Web 开发中的一些前端知识收集汇总
在开发DeveMobile 与EaseMobile 主题 的时候积累了一些移动Web 开发的前端知识,本着记录总结的目的,特写这篇文章备忘一下. 要说移动Web 开发与传统的PC 端开发,感觉也没什么 ...
- 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的”每个程序员必知之WEB开发”. 原文: http://programme ...
- Flask —— 使用Python和OpenShift进行即时Web开发
最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评.Flask是一个很流行的Python框架.那本书是Ron DuPlain写的<Flask 即时Web开发>.我决定 ...
- Web开发——Http协议剖析
Http,即超文本传输协议,是建立在TCP/IP协议的基础上.在Web开发的过程中,Http协议是十分重要的,浏览器与服务器之间的交互就是基于Http协议的.Http协议如果展开全面讲解会有很多内容, ...
- Web开发需要关注的技术细节
摘要:在网站发布前,开发者需要关注有许多的技术细节,比如接口设计.用户体验.安全性.Web标准.性能.SEO等,倘若一个疏忽就会影响到整体的体验效果.作为一名Web开发者,哪些技术细节需要考虑呢? [ ...
- 【转】web开发需要知道的事情
在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需 ...
随机推荐
- Library string Type
The string type supports variable-length character strings.The library takes cares of managing memor ...
- 使用VirtualBox搭建Pentesterlab环境
1 简介 VirtualBox 是一款开源虚拟机软件,我们使用它来装载Pentesterlab的镜像文件. 2 VirtualBox安装及配置 VirtualBox的安装项主要是网卡的配置比较麻烦,不 ...
- Cron运行原理
from:http://blog.chinaunix.net/uid-20682147-id-4977039.html 目录 目录 1 1. 前言 1 2. 示例 1 3. 工作过程 2 4. 一个诡 ...
- MongoDB3.2版本与3.0版本写场景压力测试对比
我们主要是为了测试journal对写操作性能的影响.分别测试了3.2版本,3.0版本在ramdisk,hdd上有journal,和没journal的情况. 发现一个很怪异的现象,3.2版本时候,随着y ...
- centos 软件安装 删除
centos的软件安装大致可以分为两种类型: [centos]rpm文件安装,使用rpm指令 类似[ubuntu]deb文件安装,使用dpkg指令 [centos]yum安装 类似[ubuntu ...
- js 的基础知识变量
什么是变量? 变是一个存储和释放我的数据! 我们用var关键字来声名变量,声名多个变量时用逗号来隔开 在变量没有赋值之前,显示是一个未定义的变量! <script> var a; var ...
- Echart..js插件渲染报错 data.length<1?
问题 getJSON提交 返回数据正常,在传入参数进行序列化,渲染报表时报错 option.data.length < 1. 分析 1.可能情况一: . 可自己明明是getJSON()把渲染放 ...
- Ubuntu 13.10 PHP 5.5.x mcrypt missing – Fatal Error: Undefined function mcrypt_encrypt()!
[原文]http://www.tuicool.com/articles/goto?id=myM7veR I had updgraded my Ubuntu from 13.04 to 13.10 la ...
- Django web 开发指南 no such table:
在学习django web开发指南时,发布新博客点击save后会有error提示:no such table balabalabala... 百度了一下说重新运行manage.py syncdb 就可 ...
- c# 如何通过反射 获取\设置属性值、
//定义类public class MyClass{public int Property1 { get; set; }}static void Main(){MyClass tmp_Class = ...