有的时候总感觉读书没有效率,或是记不住,或是不能专注。所以,把读的书都做一个笔记。贴上来。方便日后回顾。
本人java后端开发,大概算个中级程序员。所以笔记中的难易程度都是根据我自身水平的判断。
看完书后,按惯例,加上下载链接/s/1pyKEIQMVhz8koyYKCgZaFw ,提取码:kacq。
适合初级程序员看,中级程序员权当复习,跳着看即可。因版本较老,不推荐。
第一章:Java Web开发简介
讲了java web的发展历史,及早期的web运行流程、开发流程。大致描述了javaEE的架构,和一些早期的JavaEE服务、概述了一点MVC模式以及struts 。阅读一遍即可
第二章:Html、JavaScript简介。
主要介绍了Html、JavaScript的基本用法。全部基础知识,快速阅读一遍即可。
第三章:XML简介
全部围绕XML来进行讲解,首先明确XML的概念及语法、然后将xml与html做了个对比(html是展示信息的,XML是描述信息结构的)、然后介绍了解析XML的4中方式(分别为使用DOM或SAX或JDOM或DOM4J来解析xml)。注:xml的解析在项目中还是会经常遇到的。我只用过dom4j的解析方式。没看过源码,感觉原理应该是树的遍历。
第四章:Tomcat服务器的安装与配置
前三个小章节围绕Tomcat来介绍,第一个章节告诉我,Tomcat是个Web容器,第二个章节告诉我如何下载tomcat,以及如何配置JDK,第三个章节告诉我一些Tomcat的配置,有如何修改端口,配置虚拟目录、配置默认首页。第四节讲了如何编写jsp文件,以及jsp文件的生成过程(由jsp文件到java文件到class文件最终展示到页面上。)第五小节讲了交互性。用了一页纸,说了个从html文件跳转到jsp文件,html页面用submit提交,然后jsp页面用request接受参数的事情。然后本章结束了。注,如果tomcat和jsp你都会,本章可直接跳过。
第五章:Jsp基础语法
本章讲了一些jsp的具体用法。第一小节讲的是jsp中注释的用法。jsp注释分两大类,显示注释和隐式注释,显示注释可以被客户端F12后看见,隐式注释则不能被客户端看见。显示注释的用法为<!-- 注释内容 --> 。 隐式注释的用法有三种,分别为
//单行注释
/*注释*/ 多行注释
<%-- 注释 --%> JSP注释
注:此处注意用法,显示注释和隐式注释中的JSP注释可在jsp页面中使用。而隐式注释中的单行注释和多行注释,则需要在<%%>内部使用,放张截图
第二小节讲的是jsp中嵌入java代码的标记,<%%>和<%=%>。搞过jsp的基本都知道,前面是写代码的,后面是输出的。然后举了个例子输出99乘法表。不多说
第三小节讲的是jsp标签。就讲了一个标签<jsp:scriptlet></jsp:scriptlet>。作用和<%%>一样。唯一的作用就是更美观。然后本小节结束。
第四小节讲的是page指令。用法为<%@ page 属性="内容"%>,属性列了一堆,我放张截图上来
看看即可,主要说一个事情,PageEncoding和ContentType中的charset的区别,如下:pageEncoding指的是jsp文件本身的编码,而ContentType中的charset指的是服务器发给客户端的内容编码。放张截图
然后讲了一个web.xml中错误页的设置。即web.xml中的error-page标签的使用。这个很简单。后面又讲了一个数据库的链接操作,这玩意现在都自成一套了,哪还有放在jsp操作中的道理。不叙述。
然后来到了第五小节,讲了包含指令。包含指令分两类,静态包含和动态包含。
静态包含是这样的:<%@ include file="要包含的文件"%>
动态包含是这样的:<jsp:include page ="{要包含的文件路径|<%=表达式%>}" />
动态包含外加传递参数是这样的:<jsp:include page ="{要包含的文件路径|<%=表达式%>}" />
<jsp:param name="参数名称" value = "参数值" /> 可以包含多个参数
</jsp:include>
动态包含和静态包含的区别,假如说都包含了另外的jsp页面,静态包含属于先把页面全部包含进来,之后再进行处理。动态包含属于先把被包含进行处理,再包含进来。(用包含jsp页面好理解,假如包含页面和被包含页面都有相同的java变量x,那么此时就能体现出静态包含和动态包含的区别了。)
然后是第六小节,跳转指令。
跳转指令是这样的:<jsp:forwardpage ="{要包含的文件路径|<%=表达式%>}" />
动态包含外加传递参数是这样的:<jsp:forward page ="{要包含的文件路径|<%=表达式%>}" />
<jsp:param name="参数名称" value = "参数值" /> 可以包含多个参数
</jsp:forward>
跳转属于服务器跳转,即,网址地址栏不发生变化。客户端跳转为,地址栏发生变化的跳转。
下一节讲了个jsp+jdbc的实现,建议直接跳过。
第六章:JSP内置对象。
第一小节:jsp内置9大对象,直接使用,无需new,分别为:request、response、session、application、page、pageContext、config、out、exception。
第二小节:4种属性范围:page(只在一个页面中保存属性,跳转之后无效)、request(只在一次请求中保存,服务器跳转后依然有效)、session(在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用)、application(在整个服务器上保存,所有用户都可使用)。四个对象的通用方法setAttribute(String name ,Object o),getAttribute(String name),removeAttribute(String name)
第三小节:request对象,首先说了request的方法。大家都知道,例如getParameter、getSession、getMethod、getContextPath等就不详细列举了。然后是乱码问题,使用request.setCharacterEncoding("UTF-8")进行编码。然后说了接收参数的问题,getParameter用于接收form表单中name值唯一的参数,getParameterValues用于接收name相同的参数,例如复选框的值,getParameterNames用于接收所有参数的名称,他们的值需要根据名称情况,来判断是用getParameter还是getParameterValues来接收。下一小节说的是取出头部信息,首先用request.getHeaderNames获得所有头部信息名称,然后遍历枚举,用request.getHeader(headerName)来获取参数值。下一小节讲了一个用request.isIUserInRole()方法进行用户角色验证的方法。需要配置tomcat-user.xml和web.xml。现在应该都用shiro框架了,不详细叙说了。最后是其他方法,只说两个,request.getServletPath()是取得访问路径,即具体到jsp页面的路径。request.getContextPath()是取得上下文资源名称,即项目名称。
第四小节:response对象,介绍了三个方法addCookie(Cookie cookie),setHeader(String name , String value),sendRedirect(String location),setHeader可实现一个3秒后跳转到其他首页的功能,代码为:<%response.setHeader("refresh","3;URL=hello.html");%> ,此方法等同于HTML中直接设置meta头,<meta http-equiv="refresh" content="3,URL=hello.html"/>。然后说了页面跳转,sendRedirect是客户端跳转,即跳转后,页面语句也会执行,而<jsp:forward>属于服务端跳转,执行到此句时立即跳转,后面语句不再执行。然后说如何操作cookie,此处我觉得一张截图就可以说的很明白了。
通过response.addCookie()进行设置即可。
第五小节:session对象。书中用setAttribute和getAttribute实现了一个登录和注销的功能,这个没啥可说的。isNew()方法判断是否为新用户的session。这个原理是通过比对cookie以及session中默认储存的JSESSIONID来判断是否为新用户的,即新用户第一次访问,没有cookie,则为新用户,第二次访问,有cookie则不是新用户。还介绍了一个方法getCreationTime()获取一个session的创建时间。getLastAccessedTime()获取一个session最后一次的操作时间。注:文章中都是再jsp页面中直接使用的显示session对象。session.method()的形式。通常获取方式为Session session = request.getSession();
第六小节:application对象。介绍了三个方法,第一个getRealPath("/")获取项目所在绝对路径。第二个getAttributeNames(),得到所有属性的名称,第三个getContextPath(),得到当前虚拟路径的名称,即项目的访问根路径。书中建议,用this.getServletContext()来代替application对象
第七小节:Web安全性及config对象。开始说了WEB-INF下的文件不能由外部直接访问,所有这个文件夹下的文件是很安全的。若要访问,需要在web.xml中配置,参照serlvet编程的配置,只不过将<servlet-class>标签换为<jsp-file>标签即可。然后说了config对象的两个方法,一个是getInitParameter(String name),该方法根据传入的参数名称获取web.xml中的<init-param>中的参数值。
第八小节:out对象。除了,out.printIn()输出参数外,还有两个方法。上个截图
第九小节:pageContext对象:介绍的很少,所以,放张截图
这个玩意很少用,了解下即可。
第七章:JavaBean
第一节:JavaBean简介。告诉你啥叫JavaBean。大家都懂。
第二节:在JSP中使用JavaBean,首先说了可以使用<% page import = "com.jsl.entities.*"%> 来导入该包下的所有java类。然后同样可以使用<jsp:useBean>指令,格式为<jsp:useBean id="实例化对象名称" scope="保存范围" class="包.类名称"/>。实现原理为反射,调用类的无参构造参数,生成实例化对象,
第三节:JavaBean与表单,这里面我认为只有一点可说的,就是form表单提交后,可用
<jsp:useBean id="实例化对象名称" scope="保存范围" class="包.类名称"/>
<jsp:setProperty name="实例化对象名" property="*"/>
这两行来实现参数自动封装到对象,采用的依然是反射后调用setter方法进行属性赋值。
第四节:设置属性:<jsp:setProperty>。整体上来说,没什么可说的,因为在jsp中赋值也已经基本不用了。
第五节:取得属性:<jsp:getProperty>。使用方式为<jsp:getProperty name="实例化对象的名称" property="属性名称" />
注:用上述两个方法,都需要用<jsp:useBean>标签定义JavaBean才行。
第六节:JavaBean的保存范围,就是说了<jsp:useBean>标签中的scope属性,有page、request、session、application
四种范围值。设置哪个,即在设置范围内有效,不再赘述。
第七节:JavaBean的删除,创建使用<jsp:useBean>进行创建,删除则采用scope.removeAttribute(JavaBean的id)。即使用创建的scope中的范围对象,调用removeAttribute方法进行删除。
第八节:一个登录实例,早已淘汰的形式,不再叙述。
第九节:DAO设计模式,演示了下通过DAO进行CRUD,略微说了下工厂模式和代理模式。不赘述。可跳过。
第八章:文件上传
第一节:SmartUpload。讲解了SmartUpload的使用方法,本组件已关闭,直接跳过即可
第二节:FileUpload。书中介绍的完全没有文档来的详细,建议跳过。