Java EE学习心得

Java EE学习心得

 

 

1.    称为编程专家的秘诀是:
思考-----编程--------思考------编程……..
编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程,完事后,再思考  我编的程序还有那些不好的地方和要改进的地方,可以增加写什么功能等等;然后再去编程;

2. 先搭建整体框架再抠细节,在编程中不管是什么要先做出来,再去问怎么做!即是:先Know how 载 Know why;

3. 学习软件编程是在琢磨别人怎么做,而不是我认为应该怎么做的过程;

4.    java EE内容介绍及学习顺序:

5.    书籍收藏:
JSP应用开发详解(第三版)
Struts 基于MVC的 java Web
精通Ejb(2.1或3.0【现在很多公司还在用2.1的这可选择购买】)
精通Hibernate 该书讲得比较细可以当做手册使用
Spring in Action 中文版

6.    java EE基本部分:
①:(Servlet
知识点:
0:Tomcat的安装,介绍使用
1:如何开发servlet
2:HttpServletRequest,HttpServletResponse
3:Cookie的原理和使用
4:HttpSession 的原理和使用
5:ServletContext的原理和使用
6:用户的增加,删除,修改
7:如何做一个网站计数器
。。。。。。。。。。。。。
②:(
知识点:
1:Jsp版本的用户管理系统;
2:网上商城
3:仿百度查询系统
4:留言本
包含的知识点有:
0:eclipse+myeclipse的安装介绍和使用
1:jsp的基本语法
2:jsp的九大内置对象
3:html
4:javascript
5:javamail技术
6:jsp标签/自定义标签
7:mysql数据库的安装和使用……..
 

7.    java EE高级部分:
①:(Struts
知识点:
1:手写版本的(非工具自动生成的方式)struts用户登录系统
2:Struts版本的网上商城

包含的知识点:
1:struts的原理和配置文件的介绍
2:如何使用eclispe开发struts
3:struts标签的使用
②:(Ejb
知识点:
1:用非自动生成的方式(手写版)开发一个Session Bean
2:网上在线词典(SessionBean实现)
3:网上宠物店(EntityBean实现)
4:仿qq(jms java message service 案例)
5:使用(messagedriven bean 消息驱动bean完成远程后台调用不同程序)

包含的知识点:
1:三大bean的原理及使用
2:weblogic/jboss配置使用
3:jms的配置使用
4:数据源的配置使用
5:分布式开发模式
6:异步开发模式
③:(Hibernate
知识点:
1:用非工具自动生成的方式(手写版hibernate)开发学生管理系统
2:用eclipse 3.2再次开发学生管理系统(struts+hibernate)方式开发

包含的知识点:
1:什么是对象持久化技术
2:使用hibernate的好处是什么
3:传统的三层开发模式向四层开发模式的介绍
4:如何配置hibernate(详细介绍hibernate.cfg.xml和对象映射文件)
5:如何使用hibernate对数据库进行增、删、改、查(分页)
6:struts和hibernate如何结合

④:(Spring
知识点:
1:用非自动生成的方式(手写版本Spring)开发一个计算器【重在原理】
2:用eclipse3.2再次开发学生管理系统或时bbs(struts+spring+hibernate)方式开发,【所谓的SSH构架】

包含的知识点:
1:什么是IOC(控制反转)
2:什么是DI(依赖注入)

4:数据源的配置使用
5:分布式开发模式
6:异步开发模式

8.    动态页面技术:
jsp vs asp

9.    b/s 与 c/s 比较

10.  Servlet和jsp的开发工具:

11.  理解Tomcat在网络中的位置:
Tomcat具有①:web服务器;:jsp容器;③:servlet的容器)

12.  servlet与jsp的网络拓扑图:

13.  servlet 的开发流程:
①:在%TOMCAT_HOME%\webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息…),建立一个classes的子文件夹,也可以从别的目录 例 ROOT目录下拷贝也可以;
②:开发servlet(引入servlet-api.jar)
③:部署你的servlet在web.xml文件中:
④:启动TOMCAT,访问你的servlet,在浏览器的地址栏中输入:http://127.0.0.1:8080/myWebSite/hello  回车就可看到servlet的输出
注意: 127.0.0.1是服务器的所在IP    8080是端口号,要根据实际情况而改变

14.  servlet的开发方式:
①:通过实现接口Servlet的方式开发(实现Servlet中未实现的方法);
②:通过继承GenericServlet,只需要重写service方法,相对简单些;
③:通过HttpServlet开发servlet,需要重写doGet、doPost方法。这是目前用得最多的
     一种方法;
    第三种开发方式中的doGet和doPost的一些说明:
 

比较内容

Get

Post

①:安全性

get < post,get提交数据会再浏览器的地址栏显示数据信息

安全性好

②:提交内容大小

g et < post,get提交的数据不能大于2K,

post提交的数据理论上不受限制,但是实际编程中建议不要大于64K

③:响应速度

get > post ,get要求服务器立即处理请求

Post请求可能相对较慢,请求可能形成一个队列请求

15.  Servlet的生命周期:
init()初始化//当该servlet首次被访问时才会调用
destroy()摧毁、死亡//当服务器重新加载了Servlet或重启了服务器时该方法才会被调用;(手动调用销毁方法destroy()是不起作用的)

16.  解决网络传输的中文乱码的方法:
方法①:  此处要注意不要把“text/html;charset=gbk”的text与html顺序搞错,不然当访问时会弹出下载框,不在显示页面

res.setContentType(“text/html;charset=gbk”);

 

   方法②:在tomcat 的conf 目录下的 servlet。Xml中是标签中添加一个属性

   方法③:使用String 重新转码 :(因为java在网络传输中是以”iso-8859-1”编码传输,因此要转码才行)           

 String str=”中文”;

new String(str.getBytes(“iso-8859-1”),”gb2312”);

 

乱码à新的解决办法和新的理解:

①     针对请求request的乱码  我们可以采取request.setCharacterEncoding(“utf-8”);只对pos请求起作用;

②     针对请求中的get的乱码我们可以再设置了方法①的同时修改服务器配置文件server.xml URiencoding=”utf-8”;

③     针对渲染出乱码的情况可以把response.setCharacterEncoding("utf-8");

 

17.  Servlet的使用方法
不管是实现接口servlet的方式  还是继承GenericServlet/ HttpServlet 类 在它们的类中都有类似的方法作为写逻辑代码的地方;每个方法的参数都有对应的两个参数,这两个参数在浏览器与服务器之间起着重要作用;如下:
①:实现接口Servlet 或者继承类GenericServlet的 类 :
     方法:public void service(ServletRequest req , ServletResponse res){};
②:继承HttpServlet类 :
     方法:

public void doGet(HttpServletRequest req ,HttpServletResponse res){};
public void doPost((HttpServletRequest req ,HttpServletResponse res){};


说明:以上方法的 参数 两两对应 作用效果是一样的

同一用户的不同页面共享数据:(重要技术)
1.cookie技术;

 注意:在使用Cookie 时 name  value 不能包含中文,不然会报传递不合法参数

如:例子

Cookie cookie=new Cookie(name , value);//参数类 String  String


2.页面跳转的方法:

①:sendRedirect();转向(这种方法的效率并不高,下面会有提到另一个方法)
    通过sendRedirect()这个方法传递数据
     例子:response.sendRedirect(“url ? uName=value & password=value ”);/
/这里主要传递了两个参数 分别是别名为uName 和password 这两个参数,url为你要跳转页面的映射名字 当然在传递参数时必须要用“?”与url 隔开,传递多个则用 “&”隔开;

注意:解决sendRedirect();乱码问题,这是需要在接收处 做这样的接收处理:

u = new String(request.getParameter("uname").getBytes("ISO-8859-1"));

②:request.getRequestDispatcher(“要跳转的url”).forward(request,response);
      说明:
因为sendRedirect()方法效率不高,所有软件公司常常使用第②种方法即是(转发方法)

 

 

 

3.隐藏表单的提交



4.session技术(功能:①:保存登录用户信息;②:将某些数据放入到Session中,供同一用户的各个页面使用;③:防止用户非法登录到某个页面)
     说明:当用户打开浏览器,访问某个网站时,服务器就回在服务器的内存为该浏览器    分配一个空间,该空间被这个浏览器独占。
这个空间就是session空间,该空间中的数据默认存在30min,当然,可以修改

 

如何使用Session
①:得到session  :HttpSession hs=request.getSession(true);
②:向session添加属性: hs.setAttribute(String name,Object value);
③:从session中得到某个属性: Stringname=hs.getAttribute(String name);
④:从session删除掉某个属性: hs.removeAttribute(Stringname);

l  情空 Session的方法 invalidate();[清空所有session属性]

Session 的注意事项:

5.ServletContext技术:

如何使用ServletContext:

1.    得到ServletContext的实例

this.getServletContext();

2.     添加属性SetAttribute(String name,Object obj);

3.     得到值(Value):getAttribute(Stringname);//return Object

4.     删除属性:removeAttribute(String name);

5.     s生命周期:从创建到服务器关机!

ServletContext的一些实际应用 :

1.  网站计数器

2.      网站在线用户的显示

3.      简单的聊天系统

4.      …………

总结:如果涉及到不同的用户共享数据,而这些数据量不大,同时又不希望写入数据库,我们就可以考虑使用ServletContext来时实现。

ServletContext 的注意事项:
因为ServletContext存在于服务器端而且其中的数据会长时间存在服务器,会占用内存,因此我们建议不要向ServletContext放入过大的数据。。。。切记!

说明:①:可以理解ServletContext为在服务器的一个公共空间共享于所有客户,可以被所有客户访问;

 

示意图:

18.  servlet中显示图片:
用到的就是html中的标签:

pw.
println(“”);

19.         分页技术:分页的算法:
我们需要定义四个变量,他们有各自的用处 :
int pageSize 每页显示多少条记录
int pageNow 希望显示第几条记录
int pageCount 一共有多少页
int rowCount  一共有多少行

说明:
pageSize 是指定的pageNow是用户选择的;
rowCount是从列表中的查询得到的;
pageCount 是计算出来的该计算式为:

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}


 

针对前面提出的的问题,我们可能很自然地想到,
用select 字段名列表 form 表名 where id between ? and ?

比如显示第三页,该查询语句就是:
select *from 表名  where id字段 between 7 and 9

这个sql语句确实是别较快,但是它有一个问题,就是如果表的id被删除了
那么,某项可能就会少一条记录。

因此我们的最终解决办法是如下语句:
select top pageSize 字段名列表 from 表名 where  id字段not  in (select top
pageSize*(pageNow-1) ) id
字段 from 表名)
//该语句的含义就是:排除你希望的前面的记录条数 (select top
pageSize*(pageNow-1) ) id
字段 from 表名)
 

20.       Servlet操作文件:
 
 Servlet中操作文件跟javaSE中操作文件一样;

21.         TomCat的配置

1.   如何修改TomCat的端口

修改TomCat 根目录下/conf/server.xml文件中的port“8080” 把8080修改成您需要的端口号;

端口号的设置范围:一般实际范围是在 1~65535 (即是两个字节的范围(1~1024 则是有名端口 一般不去使用))

2.  如何设置虚拟目录

 说明:由于情况需要我们的站点需要放别的目录下比如tomcat所在的磁盘空间不够,或者为了统一管理,希望放在特定目录下而不放在默认的tomcat根目录下的webapps下等待

具体做法:打开tomcat安装目录下的conf子目录,修改其中的server.xml 在

3.  如何给TomCat 的管理员设置密码

在tomcat安装的目录下的tomcat-users.xml文件中可以给管理员设置密码,密码设置可以防止非法用户远程登录到tomcat。

4.  如何设置数据源和连接池(公司常用手法)

方法①:通过修改%Tomcat_Home%/conf/server.xml

在指定位置添加代码即可 代码文件》》

要使用到的类 : Context 类  ;javax.naming.InitialContext类 ; DataSource 类;使用方法:

 

//创建一个上下文环境对象
Context  context=newjavax.naming.InitialContext();
//通过context 得到数据源

DataSourceds=(DataSource) context.lookup(“java:comp/env/数据源的名字”);

Con=ds.getgetConnection();//得到连接

 

方法②:通过tomcat管理界面来配置

 

22.        JavaEE的十三种核心技术

①:JDBC

②: java命名接口和目录接口 JNDI

③:企业java Beans   简称:ejb

④:javaServer Pages  JSP 

⑤:javaServlet

⑥:java IDL/CORBA

⑦:java事务体系(JTA)/java事务服务(JTS)

⑧:javaMail

⑨:javaBeans激活框架(JavaBeans Activation Framework,【JAF】

十:java 信使服务(JMS)

十一:拓展标记语言(XML)

等。。。。

 

23.        JSP(jsp=html+java片段+jsp标签+javascript(css))

1.    Jsp的声明:

①   :<%@.....%>指令

②   :<%=.........%>表达式

③   :<%.........%>小脚本

④   :<%!.........%>声明函数

⑤   :<%--…..--%>注释(该注释在客户端是不可见的其是在服务器端注释的)

⑥   :

 

2.    Jsp网络拓扑图


jsp的运行原理:访问jsp的过程特别须要清楚:如果jsp文件是第一次被访问,jsp文件会被服务器翻译成一个对应的java文件(servlet),然后再被编译成 . class 文件并加载到内存中;如果是以后访问jsp,那么就直接调用内存中的jsp实例,所以第一次访问jsp慢,后面访问jsp的速度就会变快了。

Jsp和servlet是对应关系

Jsp是以servlet为基础的

3.    如何接收jsp页面提交的数据,并处理
可以使用jsp内置对象 request 的getParameter();取得数据
同时使用java片段表达式<%= %>

4.    jsp中如何使用java片段
在jsp中通过使用标签<% ……%>嵌入java片段,同时java片段可以用jsp内置对象的out对象 的out.println();方法把内容显示到客户端(浏览器)

5.    jsp中如何使用javascript完成对数据合法性的校验
在jsp中,我们可以在标签之间嵌入      ·        
请选择显示记录条数:        跳转到           

 

 

 

1.     新建一个类继承对应的监听接口   如:HttpSessionLinstener

2.     到web中配置下;





 

 

 

 


 

你可能感兴趣的:(Java,综合,Web)