暑假自学JAVA Web心得(1)

1.C/S架构和B/S架构

 一般来讲,电脑上的应用程序,例如QQ、微信、WPS、QQ音乐等等,都是属于C/S架构 主要特点就是需要不定时的更新(不止服务器端的更新)。 同理,手机上的APP也可以说是C/S架构。而B/S架构,则是浏览器的事情,你在浏览器上同样可以登录webQQ或者webQQ音乐,但是你不需要更新你的浏览器,统一在服务器端更新即可,你的浏览器显示出的内容会根据服务器端的更新而进行改变。
 
C/S架构和B/S架构的区别:
1.就维护成本来说,C/S架构要比B/S架构来的高。上面已经阐述过,C/S架构你不仅仅需要更新你的服务器端,你有多少客户端就同样需要更新多少客户端,而B/S架构只需更新服务器端。
2. C/S的客户端不仅负责与用户的交互、收集用户的信息,还需要通过网络向服务器发送请求处理数据库、电子表格和文档等等。而B/S的浏览器端只需要进行显示,这样服务器的数据负荷就较重,服务器的作用就显得尤为重要。
3.C/S架构可以通过严格的管理派发软件达到保证系统安全的目的,而B/S架构的软件由于人数较多,且不固定,相对来说安全性就较低。

 

 

2.JSP页面指令

JSP的页面指令中的难点是contentType和pageEncoding属性,这两个容易搞混。通常新建一个网页,出来的是pageEncoding=“ISO-8859-1” 这时候在JSP页面里输入中文字符会提示错误。然后就了解到,pageEncoding指的是最浅显的一层:JSP文件中不能识别中文字符,这时候把pageEncoding属性改为UTF-8即可。
那么contentType又是什么意思呢。
JSP文件部署到Web应用服务器(Tomcat)后,要经过四个阶段能返回给浏览器。
1、首先浏览器发送请求,服务器会将JSP文件中的内容转换成java语言,也就是Servlet文件(即.java文件)
2、然后将这个java文件编译为一个字节码文件(即.class文件)
3、最后Web应用服务器加载转换后的Servlet实例,处理客户端的请求并返回HTML格式的响应回应给浏览器

所以可以知道,上述的pageEncoding是指用何种编码方案转换成java文件,也就是第一个步骤。而contentType的属性则是关乎第三步,Web应用服务器会根据controlType的属性来采取编码方案返回到你的浏览器上进行显示。

经过试验发现,新建的JSP文件中只有pageEncoding是有初始值的。按理来说,应该将pageEncoding和contentType的属性都改为UTF-8才能正确的显示中文字符,光是pageEncoding的话,只是第一步的翻译正确了而已,返回仍然不能显示中文字符。但是经过试验,发现仍然能正确显示。

带着疑惑去百度查资料,contentType的默认值是ISO-8859-1,但是如果你定义了pageEncoding的属性值,那么就默认contentType也与其相一致(Tomcat是这样的)。所以我将pageEncoding的属性值改为UTF-8后,contentType的值也变成了UTF-8。这样就解决了疑惑。

 

posted @ 2017-08-14 17:15  还有那半人心丶  阅读(166)  评论(0编辑  收藏  举报