(2010年秋)Java高级应用技术复习总结

(2009年秋)Java高级应用技术复习总结

2007级计算机07-1班张绍帅

目录

(2009年秋)Java高级应用技术复习提纲 (1)

目录 (1)

题型说明 (1)

1. Servlet+JSP+Bean+JDBC的开发技术 (1)

2. Struts2 + Hibernate的开发技术 (11)

题型说明

基础题(填空、判断、选择)40%——A

简答题——25%B

程序题(程序改错、程序填空)35%——C

1. Servlet+JSP+Bean+JDBC的开发技术

1.

控制层:根据业务逻辑流程描述文件之间的跳转(servlet类完成)

视图层:在浏览器端表现表单或显示处理结果(html或jsp文件完成)

模型层:处理具体的业务逻辑——业务逻辑组件(bean类或ejb类完成),

存取数据库——数据访问组件(JDBC的java类完成)

2.Servlet程序的本质、主要作用——AB

本质:符合Servlet编写规范的采用java语言编写的java类,在服务器端调用和执行。

作用:读取客户程序发送过来的显式数据(表单数据);

读取客户程序发送过来的隐式数据(请求包头);

生成相应结果;

发送显示数据给用户程序(html)

发送隐式数据给客户程序(状态代码和相应包头)

3.Servlet在Web.xml文件中的配置方法——C

//设置服务器启动时自动打开的页面

index.html

default.jsp

页面文件名

//注册servlet,建立注册名和类名的对应关系

myservlet //注册名 helloworld //包名.类名

//建立URL名称和Servlet的对应关系

myservlet //注册名 firstservlet //url地址

4.Servlet在浏览器中的输出方法——C

out.println(docType +

"\n" +

"HelloWorld2\n"+

"\n" +

"

HelloWorld2,你好!!

\n" +

"");

5.Servlet的生命周期——AB

a. Servlet第一被请求时,由Servlet容器建立其实例,并调用其init()方法。Servlet初始化仅此一次。

b.当其它请求来临时,Servlet容器会将请求自动组装为一个ServletRequest对象,并自动产生一个ServletResponse对象,这两个对象一并传递给Servlet的service(req,res)方法。

a)ServletRequest:负责接受用户请求数据

b)ServletResponse:负责响应用户,展现结果

c.Service方法根据请求的方法类型执行doget和dopost方法.

d. Servlet不再使用时调用destory方法释放(关闭Web服务器时)

6.HTTP请求中Get方法和Post方法的区别——B

Get发送的数据和请求的地址一起显示在地址栏

Post请求的数据会隐藏在请求报文的body部分

数据传输的保密性上:

Get方法弱,Post方法强。

数据传输的数量上:

Get方法弱(url之后不能多于256个字符),Post方法强。

7.HTTP表单中form标记的基本属性action,method,enctype——A

描述表单的特性,语法

method表单传输方法

GET方法将表单信息在URL后传输

POST方法将表单信息作为信息体传输

action为表单处理方式,通常为一个URL

enctype为编码方式

8.Servlet对表单请求处理的基本方法doGet和doPost的区别——A

a)doGet方法的最前面添加:

response.setContentType("text/html;charset=UTF-8");

b)doPost方法的最前面添加:

request.setCharacterEncoding(“UTF-8”);//输入信息统一为UTF-8编码

response.setContentType("text/html;charset=UTF-8");

9.Servlet获取表单提交属性值的基本方法getParameter(),

getParameterNames() ,getParameterValues()的使用——C

* String getParameter(String name)——获取表单提交的属性值

例如:String xx=request.getParameter("school");

注意,这里参数的名称应该和表单中的元素名字大小写一致

*Enumeration request.getParameterNames()——获取请求表单中所有属性名称

使用方法:Enumeration paramNames = request.getParameterNames();

*String[] getParameterValues(String name)——获得一个属性的所有取值

使用方法:

String paramName = (String)paramNames.nextElement();

String[] paramValues=request.getParameterValues(paramName);

*三者均为request的方法

代码:

//取表单元素名称放到一个数组

Enumeration paramNames = request.getParameterNames();

while(paramNames.hasMoreElements()) {

//对每一个表单元素,取其名称

String paramName = (String)paramNames.nextElement();

//输出表单元素名称

out.print("" + paramName + "\n");

//获得表单元素的一系列值

String[] paramValues =request.getParameterValues(paramName);

//判断表单元素是否只有一个值

if (paramValues.length == 1) {

String paramValue = paramValues[0];

//判断表单元素值是否为null

if (paramValue.length() == 0)

out.println("No Value");

else

out.println(paramValue);

}

else {//若表单元素不只有一个值

out.println("

    ");

    for(int i=0; i

    out.println("

  • " + paramValues[i]);

    }

    out.println("

");

} }

10.Cookie的本质和Cookie的使用过程——AB

是Web网站派送到浏览器端的一个名称和值的数据对,存储在客户端电脑上,记录用户的个性化数据(例如用户登录的用户名\密码,所作的选择、用户访问的日期或URL 等),在客户单浏览器再次访问该网站时,Cookie会自动随用户请求发回给网站,网站可以读取它放置的Cookie,从而读取到用户个性化数据,进行个性化处理

将名称/值对从服务器发送到浏览器,并在之后访问相同的页面、站点或域时返回给服务器。

作用: 保存用户提供或使用的私有数据,方便他用也存在不安全因素

11.服务器从客户端读取Cookie的方法getCookies\getName\getValue——C

1.先得到得到由浏览器所有Cookie对象组成的数组。

Cookie[] cookies = request.getCookies();

2. 再在这个数组中循环,调用每个对象的getName,直到找到想要的cookie为止。

Cookie c = cookies[i];

if (c.getName().equals("c-username"))

3.根据应用程序的具体情况使用从Cookie中取出的这个值

String username=c.getValue();

getCookies()为request的方法,参数为空,返回值为Cookie数组;getName()、getValue()为Cookie的方法,参数为空,返回值为String;

代码:

Cookie[] cookies = request.getCookies();

/*

* 判断客户端是否已经有用户名和密码的Cookies

* 若有则把Cookie读取出来

* 否则下面在客户端创建Cookie

**/

if (cookies != null) {

for(int i=0; i

Cookie c = cookies[i];

if (c.getName().equals("c-username"))

username=c.getValue();

if (c.getName().equals("c-pwd"))

pwd=c.getValue();

/*

* 输出Cookie的各个属性

*/

if (pwd!=null && username!=null)

{hasCookies=true;

break;

}

}

}

12.Cookie的建立以及服务器向客户端发送Cookie的方法addCookies——C

创建Cookie对象,给出cookie的名称和cookie的值,二者都是字符串。

Cookie usernameCookie = new Cookie("c-username",request.getParameter("username"));

将Cookie发送到客户端去

response.addCookie(usernameCookie );

addCookies为response的方法,参数类型为Cookie,无返回值

代码:

/*

* 处理用户登录页面

* 在客户端创建Cookie

*直接输出用户的登录表单信息

**/

Cookie usernameCookie = new Cookie("c-username",

request.getParameter("username"));

/*

* 设置usernameCookie的其他属性

*/

//setCookieProperty(usernameCookie,"xxxxxxx");

response.addCookie(usernameCookie);

Cookie pwdCookie = new Cookie("c-pwd", request.getParameter("pwd"));

response.addCookie(pwdCookie);

13.Cookie时效性的设置和判别——A

123.setMaxAge(-1);是默认值,当关闭浏览器时123就失效—会话Cookie

123.setMaxAge(300);意味着Cookie 123保存5分钟——持久Cookie

123.setMaxAge(0); 删除Cookie 123

request.getCookies() 获取浏览器端所有的Cookie

123.getName() 获取Cookie 123的名字

123.getValue() 获取Cookie 123的值

123.getMaxAge() 获取Cookie 123的最大生存时长

14.JSP的本质和优点——AB

本质:JSP仍然是服务器端技术,必须放在支持JSP容器(支持编译运行的环境)的服务器端才能执行。

优点:

动态Web页面的设计简单:可以借助IDE工具,如Macromedia、FrontPage等

便于处理代码和显示代码分离:处理代码—专门的java开发人员;显示代码—专门的HTML 页面设计人员

请求调用简单:直接使用文件名作为URL,不必在web.xml中注册

15.JSP的生命周期——AB

16.JSP的基本指令page注意事项、include的用法、taglib的含义——AB

1、page指令—<%@ page... ...%> 用于定义JSP页面的全局属性。

语法格式如下:

language="java"

声明脚本语言的种类,目前只能用"java" 。

import="{package.class | package.* },..." 需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明。

注意事项:

“<%@ page %>”指令作用于整个JSP页面,包括静态的包含文件。(但是不能作用于动态的包含文件,比如“”)

可以在一个页面中用上多个“<%@ page %>”指令,但是其中的属性只能用一次(import 属性例外,可以多用几次。)

“<%@ page %>”指令无论放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。

Include指令—<%@ include... ...%> 用于向当前页中插入一个文件的内容。语法格式如下:<%@ include file=“相对URL " %>

taglib指令—<%@ taglib ... ...%> 用于引入外部定制标签库

例如,在jsp文件中引入struts标签库:<%@ taglib prefix="s" uri="/struts-tags" %> 17.JSP的标准动作forward使用、include的特点、useBean使用——AC

1、Forward:用来转向到其它页面

a.直接跳转到某个页面

b.跳转到某个页面时附带传送数据

[]

注意:这时目的文件必须是动态文件(jsp或servlet可以,html不行)。如果想传递多个参数,可以在一个jsp:forward中使用多个标签从一个JSP 文件向另一个动态文件传递一个包含用户请求的request对象。标签以后的代码,将不能执行。

代码:

2、include:把其它静态或动态页面引入到本页面中

a.直接引入某个页面(page=“… …" 参数必须为一相对路径)

(这里必须使用flush="true",不能使用false值。而缺省值为false)

b.引入某个页面时附带传送数据

[]

注意:这时目的文件可以是其它静态或动态页面,如果想传递多个参数,可以在一个jsp:include中使用多个

18.Java Bean的定义特点和好处——A

是一种遵循某种定义规则的java类,必须具备空参的构造函数:显式定义这样一个构造函数或者省略类所有的构造函数即可。类变量必须是私有的:使用特定的存取函数对字段直接访问——属性。xxx属性的存取函数要定义为getXxx和setXxx方法(xxx属性名称的首字母必须是小写)

好处:1、隐藏了Java语法2、将请求参数与Java对象关联起来更加容易(bean属性)3、使得在多个请求或servlets/JSP间共享对象得到简化

定义Bean的其它注意事项:一定要把Bean定义在包中,便于共享,一个Bean一定要实现java.io.serializable接口,便于Bean数据保存到外存中

19.Java Bean在JSP文件中的创建和共享、属性读取、属性设置方法——AC

*创建Bean实例

*读取Bean属性的值

*设置Bean属性的值

*把表单参数和Bean属性进行绑定Bean属性名称和表单元素名称可以不一致 *一次性把所有表单参数和Bean属性绑定

前提条件是:表单参数名称和Bean属性名称要完全一致,大小写也要一致

*在应用Bean时可以指明Bean的共享范围

共享范围

page----默认值:Bean只能应用在本JSP文件中

application:Bean可以为同一Web应用中的所有用户共享

session:Bean可以为用户访问会话过程所共享(不关闭浏览器窗口的情况下),不同用户不能共享

request:Bean只在当前请求过程中有效,请求过程可以连续跨越多个页面

20.基于Servlet+JSP+Bean的MVC框架和开发步骤——BC

a. 定义用以表示数据的bean

b. 使用一个servlet处理请求(servlet读取请求参数,检查数据的缺失或异常等)

c. 填充bean(该servlet调用业务逻辑(与具体应用相关的代码)或数据访问代码得到最终的结果。得出的结果与bean绑定。)

d. 将bean存储在request、session或servlet的上下文中,方便共享(该servlet调用请求、会话或servlet上下文对象的setAttribute存储bean)

e. 将请求转发到JSP页面(该servlet确定哪个JSP页面适合于处理当前的情形,并使用RequestDispatcher的forward方法将控制转移到那个页面。)

f. 从bean中提取数据(JSP页面使用jsp:useBean和与第4步匹配的位置访问之前存储的bean,然后使用jsp:getProperty输出bean的属性。JSP页面并不创建或修改bean;它只是提取并显示由servlet创建的数据。)

代码:

第一步:

public class SchoolBean implements Serializable {

private String name;

private String school;

public void setName(String n){name=n;}

public void setSchool(String s){school=s;}

public String getName(){return name;}

public String getSchool(){return school; }

}

第二、三、四、五步:

姓名:


学校:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//设置请求的编码格式,以兼容中文

request.setCharacterEncoding("utf-8");

//读取用户请求

String n=request.getParameter("name");

String s=request.getParameter("school");

//创建数据Bean实例,并设置Bean属性

SchoolBean schoolbean=new SchoolBean();

schoolbean.setName(n);

schoolbean.setSchool(s);

//存储Bean,目的是和其他文件共享该Bean

request.setAttribute("resultinfo", schoolbean);

//流程判断,以确定不同的转发结果地址

String forwardUrl=null;

if (!isParameterBlank(n) && !isParameterBlank(s)){

forwardUrl="/goodInfo.jsp";}

else if (isParameterBlank(n) && isParameterBlank(s))

forwardUrl="/inputAgain.jsp";

else

forwardUrl="/errorInfo.jsp";

//实现转发

RequestDispatcher dispatcher =request.getRequestDispatcher(forwardUrl);

dispatcher.forward(request, response);

}

第六步:

输入完整

您的姓名是:

您的学校是:

21. Java Bean在基于Servlet+JSP+Bean的MVC中的创建和共享(Request/Session)方法、属性读取、属性设置方法——AC

为了保证JSP页面不会创建对象,我们应该使用,而不是

”/>表示使用已经存在的Bean实例

BeanObject value = new BeanObject(...);

value.setXxx(…);

request.setAttribute("key", value);

RequestDispatcher dispatcher =request.getRequestDispatcher("/SomePage.jsp");

dispatcher.forward(request, response);

JSP文件

BeanObject value = new BeanObject(...);

value.setXxx(…);

HttpSession session = request.getSession();

session.setAttribute("key", value);

RequestDispatcher dispatcher =request.getRequestDispatcher(“/SomePage.jsp");

dispatcher.forward(request, response);

JSP

synchronized(this) {

BeanObject value = new BeanObject (...);

value.setXxx(…);

getServletContext().setAttribute("key", value);

}

RequestDispatcher dispatcher =request.getRequestDispatcher("/SomePage.jsp");

dispatcher.forward(request, response);

JSP

22. Servlet到JSP页面的跳转实现dispatcher.forward方法——AC

同上

23. JDBC的作用和设置步骤——AB

作用:JDBC本质上是一系列的应用程序接口(API),通过JA V A语言访问任何结构化数据库,通过JDBC API写出的程序,能够将SQL语句发送到相应的任何一种数据库

设置步骤:

注册驱动程序(只做一次)

建立连接(Connection对象)

创建执行SQL的语句(Statement/PreparedStatement对象)

执行语句

处理执行结果(ResultSet对象)

释放资源

代码:

Connection conn=null;

//加载Sqlserver数据库驱动程序,sqljdbc4.jar可以省略本句,sqljdbc.jar不可以 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接

String dburl="jdbc:sqlserver://localhost:1433;databaseName=txdatabase";

String sqlUser="sa";

String sqlPwd="123";

conn=DriverManager.getConnection(dburl,sqlUser,sqlPwd);

Connection conn=null;

PreparedStatement ps=null;

ResultSet rs=null;

conn=DBConnection.getConnection();

String sql = "select * from logintable where username=? and password=?";

ps = conn.prepareStatement(sql);

ps.setString(1,un);

ps.setString(2, p);

rs = ps.executeQuery();

rs.close();

ps.close();

conn.close();

24.JDBC中执行CRUD的基本方法——AC

代码模板:

Connection conn = null;

Statement st=null;

ResultSet rs = null;

try {

//获得Connection

//创建Statement

//处理查询结果ResultSet

} finally {

//释放资源rs, st,conn

}

*增、删、改用Statement.executeUpdate(或PreparedStatement.executeUpdate)来完成,返回整数(匹配的记录数),这类操作相对简单

*查询用Statement.executeQuery (或PreparedStatement.executeQuery)来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。

25.JDBC中处理查询结果的基本方法——AC

1、对查询的结果集进行读取

获取Statement对象st执行查询的结果集

ResultSet rs = st.executeQuery(sql);

2、获取PreparedStatement对象ps执行查询的结果集

ResultSet rs = ps.executeQuery();

依次处理结果集中的每条记录

While(rs.next()){ //获得查询记录集时默认记录指针指向第一条记录之前的位置,//rs.next()函数会使记录指针下移一条记录

rs.getString(“col_name1”);

rs.getInt(“col_name2”);

//数据库中不同的数据类型,在ResultSet 中均有相应的get方法设置对应的列

}

2. Struts2 + Hibernate的开发技术

1.Struts2框架的特点和处理流程——AB

特点:

a)控制层的跳转控制由一个专门的xml配置文件完成,降低了程序间的耦合性

b)支持其它的视图层表现技术

c)提供了Web拦截器等高级功能

处理流程:

(1)浏览器发送请求,提交请求表单

(2)核心控制器FilterDispatcher根据请求决定调用合适的Action。

(3)Struts 2的拦截器链自动对请求应用通用功能,例如workflow、validation或文件上传等功能。

(4)回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。

(5)核心控制器FilterDispatcher 根据Action的execute方法处理结果信息将被输出到浏览器中。

2.基于Struts2的MVC框架和开发步骤——BC

流程:

1.在web.xml中定义Filter负责拦截用户请求

2.编写申请表单的JSP文件(引入struts2标签库<%@ taglib prefix="s" uri="/struts-tags"%>)

3.定义处理请求表单的Action类

需要继承ActionSupport类

需要定义表单元素的对应的私有变量xxx及相应的SetXxx和GetXxx函数。

需要重写action默认的执行方法execute()

4.在struts.xml配置Action

指定Action方法对应的Action类

指定Action处理结果和结果视图之间的对应关系

/main.jsp

/register.jsp

5.编写结果视图的JSP文件

引入struts2标签库

<%@ taglib prefix="s" uri="/struts-tags"%>

通过struts2标签直接引用action处理后的属性

3.Struts2 核心拦截器在web.xml中配置——A

struts2

org.apache.struts2.dispatcher.FilterDispatcher

配置Struts 2框架的核心Filter ,指定名称和相关的类

struts

/*

配置Filter拦截的URL ,

配置Struts 2的核心FilterDispatcher拦截所有用户请求

4.Action类的基本书写——AC

5.Action类在struts.xml文件中的配置方法——AC

6.内建拦截器workflow和validation的使用方法——A

7.自定义拦截器的过程——AC

实现拦截器类

重写intercept方法

配置拦截器

使用拦截器

8.Struts2标签中iterator的用法——AC

9.Value Stack和Stack Context中变量的放置和读取方法——AB

情况1:直接显示在JSP页面

读取ValueStack中的值

读取Stack Context中的值

情况2:显示在JSP的表单元素中(通过name属性和获取的值绑定在一起来实现)

读取ValueStack中的值

读取Stack Context中的值

10.Hibernate的思想——AB

通过配置文件和映射文件把Java对象(PO)映射为关系数据库中的表格

a)PO, Persistent Object,持久化对象

b)配置文件:用来配置数据库信息

c)映射文件:用来定义PO属性和表格字段的映射关系

通过操作Java对象实现对数据库表格的CRUD操作

11.中PO的特点和定义规则——AB

PO类的定义规则

a)必须有无参构造函数

b)有和数据库表格对应字段的属性定义

c)有属性的Setter和Getter方法

12.Hibernate中PO的的三个状态和状态转换条件——AB

新建PO实例存储数据

该数据处于临时(瞬时)状态

例如:Liuyan ly=new Liuyan();

把PO实例和session绑定

该数据从临时状态转换为持久状态

例如:session.save(ly);

保存在表中,session关闭

该数据从持久状态变为脱管状态

例如:session.close();

13.Hibernate的运行过程——AB

调用Cnfiguration类,读取Hibernate的配置文件和映射文件,生成一个SessionFactory对象,由SessionFactory生成一个Session对象

由Session对象生成Transaction对象

通过Session对象实现对PO的加载、保存、更新和删除操作

由Session对象生成Query对象,负责执行查询操作

最后由Transaction对象保存操作结果到数据库

14.hibernate.cfg.xml的作用——A

配置数据库的连接参数

15.PO映射文件在hibernate.cfg.xml中的配置方法——A

16.PO类和表的映射关系在PO映射文件(*.hbm.xml)中的配置方法——C

not-null="false" />

not-null="false" />

17.Hibernate持久化操作中插入记录、更新记录、根据属性读取记录方法——AC

插入:

Liuyan ly=new Liuyan();

ly.setUsername(username);

ly.setContent(content);

// 准备持久化的操作

//下面的语句中Configuration会自动加载src目录下的hibernate.cfg.xml文件

Configuration cfg=new Configuration().configure();

SessionFactory sf=cfg.buildSessionFactory();

Session hs=sf.openSession();

Transaction ts=hs.beginTransaction();

// 进行插入操作,把它由临时状态变为持久化状态

hs.save(ly);

https://www.360docs.net/doc/5119233421.html,mit();

hs.close();

更新:

String username1=request.getParameter("username1");

String content1=request.getParameter("content1");

int id1=Integer.parseInt(request.getParameter("id1"));

// 建好PO的对象,它现在处于临时状态

Liuyan ly=new Liuyan();

ly.setUsername(username1);

ly.setContent(content1);

ly.setId(id1);

//准备持久化的操作

Configuration cfg=new Configuration().configure();

SessionFactory sf=cfg.buildSessionFactory();

Session hs=sf.openSession();

Transaction ts=hs.beginTransaction();

// 进行更新操作

// PO对象从临时状态转变为持久状态

hs.update(ly);

https://www.360docs.net/doc/5119233421.html,mit();

//PO对象从持久状态转变为脱管状态

hs.close();

查询:

Configuration cfg=new Configuration().configure();

SessionFactory sf=cfg.buildSessionFactory();

Session hs=sf.openSession();

Transaction ts=hs.beginTransaction();

/*

* 读取操作,

* 根据Id把表中的一条记录读取出来,和PO实例绑定

* PO实例和session绑定,为持久状态

*/

Liuyan ly=(Liuyan)hs.get(Liuyan.class, new Integer(this.queryId));

/*

* 或者使用load方法

*Get是立即发送SQL语句获得持久化对象,而Load是当需要访问持久化对象才获取持久化对象

*/

//提交事务

https://www.360docs.net/doc/5119233421.html,mit();

//关闭sesion,PO实例从持久状态变为脱管状态

hs.close();

/*

* 获取Action执行的上下文环境

* 获取application、session、request等对象

* 便于后面把查询的结果进行共享传递给结果视图展示

*/

ActionContext acontext=ActionContext.getContext();

Map session=acontext.getSession();

18.HQL的特点和基本查询语句的书写——AC

针对的是持久化对象

注意1:from 的对象是PO类的名字,而不是表的名字

注意2:HQL中类名\属性名一定要和PO类中的定义大小写一致

注意3:一般为PO类的名字起一个别名

from 语句——选择出所有属性

例如:“from User u where https://www.360docs.net/doc/5119233421.html,ername=? and u.password=?”

结果以存储在List中

Select语句——选择出给定的部分属性

例如:select https://www.360docs.net/doc/5119233421.html,ername, u.password from User u

只有一个属性

返回结果是List,List中的元素可以转换为相应的属性类型,例如

Query hquery=hsession.createQuery(“select https://www.360docs.net/doc/5119233421.html,ername from User u ”);

List hlist=hquery.list();

For(int i=0;i

String name=(String)hlist.get(i);

System.out.println(name);

}

多于一个属性(包含全部属性的情况)

返回结果是List,但List中的元素是数组,例如

Query hquery=hsession.createQuery(“select https://www.360docs.net/doc/5119233421.html,ername, u.password from

User u”)

List hlist=hquery.list();

For(int i=0;i

Object obj[ ]=(Object[ ])list.get(i);

String name=obj[0];

String pwd=obj[1];

System.out.println(name);

System.out.println(pwd);

}

19.Hibernate持久化操作中执行查询和处理查询结果的基本方法——AC

作用:用来完成更详尽的查询

get()和load()函数都只能根据给定的id查询出一条记录

创建查询对象

Query q=hsession.createQuery(“HQL查询语句”);

查询对象的setXXX方法

用来设置HQL查询语句中的参数

q.setString(0,”王芳”)

查询对象的list()方法

获取查询结果放入List类型的变量中

List result=q.list();

意味着把一条记录作为一个object对象放入List对象中

代码:

Configuration cfg=new Configuration().configure();

SessionFactory sf=cfg.buildSessionFactory();

Session hsession=sf.openSession();

Transaction ts=hsession.beginTransaction();

Query hquery=hsession.createQuery("from Liuyan ly where ly.content like ?");

hquery.setString(0, "%"+queryWord+"%");

List queryList=hquery.list();

HttpServletRequest request = ServletActionContext.getRequest();

request.setAttribute("queryList", queryList);

https://www.360docs.net/doc/5119233421.html,mit();

hsession.close();

20.表的关联关系在PO对象上的设置过程和方法(以级联删除为例)——C

JAVAWEB实训心得体会

j s p+s e r v l e t+m y s q l论坛项目实训总结 实训人:程路峰学号 通过为期10天的实训,我学习了很多关于java web的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得 一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一 个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然 的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是 欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的 结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4个模块,1.界面,2.逻辑层。3实现层。4.数据库及使用说明文档,分别为4个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程 中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算 机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须 具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。"纸上得来终觉浅, 绝知此事要躬行!"在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真 真领悟到"学无止境"这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合 作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除 了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅 加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。 这次实训带给我太多的感触,它让我知道工作上的辛苦,事业途中的艰辛。让我知道了实际的工作并不像在学校学习那样轻松。让我学到了很多课堂上更本学不到的东西,仿佛自己一下子成熟了,懂得了做人做事的 道理,也懂得了学习的意义,时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的,只要 勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的重任,看清了自己的人生方向,也让我认识 到了做软件应支持仔细认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到什么事都要总代 表地去思考,多听别人的建议,不要太过急燥。

java开发实习心得体会

四川实习心得体会 计算本一班01210251y33 张焕炎 大四初始,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程! 在四川短暂的一个月里,我从基础入手,强化了java语言编程,学习了java 语言编程和编程概念与技巧。时间很短,但成长很快,无论是理论知识还是动手实践能力都得到了大幅度的提高。而将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用! 实践过程中,开发一个简单的小项目,包括如何将Java的思想运用到实际系统的详细设计之中。首先要将系统要实现的功能分为几大模块,然后每个分别完成,在此过程中使我加深了对Java的理解,以及如何进行工作的划分,与此同时熟练掌握Java语言的编辑,编译,调试程序,并将算法转变为程序实现。我将设计过程分为逻辑设计和详细设计两个步骤实现.逻辑设计指的是,对问题描述中涉及的对象定义相应的数据类型,定义主程序模块和各抽象数据类型及其代码;详细设计则为定义相应的模块的实现并写出各模块的实现代码。然后在连接数据库,编码测试,最后确定完成。 通过这次实践,使我灵活应用所学知识,独立完成问题分析,结合Java理论知识,编写程序解决指定问题。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力。同时在这次实践中,培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。然而,在这次实践中,我觉得一个人完成一个项目是多么的艰难,在一些大型的项目中,团队合作是多么重要。尽管这次只是一个小项目,却也要耗费大量的精力。我学习了知识,也培养了实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。学习的过程中不可避免的遇到问题,这些问题有的只是一个符号错了,一个括号少了,这类的问题在他的文档,或者一般的网站上就能够找到,尤其是初学者的问题,不会是很难的问题,在你之前已经无数人问过了,不要害怕提问,但

java概念 复习总结及题目

JAVA概念 1.去掉了头文件、指针变量、结构、运算符重载、多重继承等 2.Java 不支持预处理功能。C/C++ 在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发 人员提供了方便,但增加了编译的复杂性。Java 虚拟机没有预处理器,但它提供的引入语句(import) 与C++ 预处 理器的功能类似。 3.java方法不支持参数缺省值,因为这会与重载冲突 4.Java 不提供goto 语句,它虽然指定goto 作为关键字,但不支持它的使用,还有const 5.Java 不支持C++ 中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。 6.装箱是Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int 转化成Integer , 反之就是拆箱。 Integer a = new Integer(3); Integer b = 3; // 将3自动装箱成Integer类型 int c = 3; System.out.println(a == b); // false 两个引用没有引用同一对象 System.out.println(a == c); // true a自动拆箱成int类型再和c比较 7.一个".java" 源文件中是否可以包括多个类(不是内部类)但只能有一个public 的类,并且public 的类名必须 与文件名相一致。 8.不通过构造函数也能创建对象 9.不可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用, 静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,因此在调用静态方法时可能对象并没有被初始化。 10.内部类可以引用它的包含类(外部类)的成员,包括私有成员//私有成员不能被其他类访问XXX? 11.override覆盖(重写):名称、返回类型和参数列表与父类中的相同(参数列表又叫参数签名,包括参数的类型、个数和顺序) 被覆盖的方法在子类中只能通过super调用。覆盖不会删除父类中的方法,而是对子类的实例隐藏 如果覆盖的是成员变量,this.age与super.age是一个 覆盖的原则: 覆盖方法不能比原方法访问性差(即访问权限不允许缩小)。 覆盖方法不能比原方法抛出更多或更高级(EXception>ioException)的异常。 被覆盖的方法不能是final类型,因为final修饰的方法是无法覆盖的。 被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。* 被覆盖的方法不能为static。如果父类中的方法为静态的,而子类中的方法不是静态的,那么会发生编译错误;反之亦然。 即使都是静态的,仍然不会发生覆盖,因为静态方法是在编译的时候把静态方法和类的引用类型进行匹配。声明为static的方法 不能被重写,但是能够被再次声明。 对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只 是定义了一个新方法,而不会达到重载的效果。* 覆盖和重载的不同: 覆盖要求参数列表必须一致,而重载要求参数列表必须不一致。* 覆盖要求返回类型必须一致,重载对此没有要求。 覆盖对方法的访问权限和抛出的异常有特殊的要求,而重载在这方面没有任何限制。 不能仅通过返回类型重载:因为有时候调用一个方法时可以不定义返回结果变量,例如,我们调用map.remove(key)方法时,虽然remove 方法有返回值,但是我们通常都不会定义接收返回结果的变量,这 时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同* 不能通过访问权限、返回类型、抛出的异常、只改为兼容的形参类型,int->long进行重载,总之从编译器角度思考 构造器Constructor 不能被继承,因此不能重写Override,但可以被重载Overload。

最新javaweb学习课程总结

总结一:javaweb课程总结刚开始学的时候,感觉这两门课程好高大上的样子,因为自从学软件工程这个专业以来,一直都是学的理论性、框架性的东西,就没有接触到编程的实质性的部分,终于开始学编程了,感觉蛮兴奋的,也是精神饱满,信心十足,怀着一腔热血来听课。 由于JAVAWEB和JSP两门课是同时上的,而且每次都是一整上午,上课时间很长,老师一直有条不紊的讲着,虽然时间很长,但是每当大家上完课,心中都是有一种充实的感觉,大家都觉得有所收获,所以也就不曾觉得累了。 JAVAWEB这门课让我认识了以前见所未见闻所未闻的专业术语,Web应用程序的概述。我从中了解到Web应用程序的三层体系结构:表示层、业务层、数据存取层。从而想到了学数据库设计时的数据库设计三大范式,它们同是叙述在编写代码时应做的规划和应遵循的规则,这种规划在以后的学习中时有出现,说明编程并不是一味地进行循环判断、死记硬背,而需要在技术上有所加强、在效率上有所提高。做任何事都是如此,事先必须有目标、有计划,有统筹,这样执行时才不会盲目,才不会事倍功半。学习编程对综合能力都是一种培养。 接下来是JSP知识。要学JSP,就必须会HTML,如果HTML学不通,这对以后的学习都是一个瓶颈。基础一定要打扎实,吃透,否则上层建筑的建起就不会很顺利甚至没法起步。然后是JavaBean。以下是个人对JavaBean的一点学习体会。JavaBean里有set()和get()方法,用这些方法能很容易地传值,逻辑上更标准,代码看起来也更规范。但set()和get()方法只是用来对属性进行操作的,所以如果是进行复杂的逻辑或对数据库进行操作等,那么就不要写成set()和get()方法,只用一个有返回值的方法就足以。这样直观方便,且符合规范。总之,set()和get()方法不要没有效率地滥定义。 接着是Servlet。Servlet是一个用Java编写的应用程序,在服务器上运行,用来处理请求和响应,也可以单独做为一个Web页面。然后讲的是标签,包括自定义标签和JSP标准标签库。用一般的Java代码都几乎能实现它们的功能。它们的好处是提高了代码的重用性。 我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的静态网站。后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。这门课更是巩固了JAVA 这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。 Jsp与servlet有一定的区别,Servlet可以看作是HTML的Java代码,而JSP可看作是包含Java代码的HTML。共同点:JSP和Servlet实际上是一回事。JSP页面最终要转换成Servlet,并进行编译,在请求期间执行的实际上是编译后的Servlet。因此,JSP页面不过是编写Servlet的另一种方式。各自应用的范围:Servlet比较适合于做处理任务,如做业务逻辑;JSP适合于表示任务,如网页制作,生成动态网页。 对JAVAWEB和JSP课程的知识就简单介绍到这里,本学期的这两门课程让我对软件工程这门课有了一个全新的认识,我真切的学到了能用的东西,大学里的很多课是浪费时间,而

javaweb实训总结

javaweb实训总结 实训已经进行两周多了,还有一周就要正式结束了,突然发 现自己似乎又重蹈覆辙了,再一次一次的不经意中和某些人 的就距离却是越来越来大,总是想偷一下懒,总是想着马马 虎虎过去算了,没有那么精打细算过。结果不经意有些人人 开始脱颖而出,有些人开始展露锋芒,而我也开始黯淡下去。我是想好好学学别人的,结果画虎不成反类犬。原来我也是 不轻易臣服的人,我即便不去领导他们也没有人可以领导我。给我分的实训小组连个能交流的人都没有,身边一个研究生 只会不停地打击我,我只能不知所谓的笑笑。这个项目小组 真让我郁闷,组长谁也领导不了,组长不是我,我也懒得管,乐得清闲。 这两周究竟自己学到了什么,确实在脑海中总还是模糊不清的,J2SE,J2EE,HTML,JScrip特效,CSS,JAVAweb,Servlet,JDBC,数据库快速建模,数据池,单态模式,JFreechart,俄罗斯方块项目,人力资源项目,购物网项目,这都算是过 来了,可是心里却不是很有谱自己心里七上八下的,自知学 的只有四成火候,又不断地被人打击打击么还没有可以交流,心中这两天的抑郁让我难以忍受,总是喉咙里很堵,心里着 实闷得难受。回去想跟室友聊聊,他只说了一句,寂寞才说爱,活该。我就更郁闷了,我一直对自己说我只是活着我只 是深爱着。明天就要进行最后一周实训了,各项目都到了结

束完善阶段,也是所学的整理复习阶段。看着周围有人夸夸 其谈,有人韬光养晦,自己心里也很没底,项目结项之后还 有个考核我都十分担忧。其实这各阶段我更担忧的是我发现 自己的学力已经下降,可能是长时间习惯不听老师讲课,只 靠自学和考前突击。现在听讲师讲课总是听着听着就跑神了,听着听着就觉得没意思了,总想自己看书自己单干,可真的 有时间的时候我却提不起精神去单搞,总是事倍功半花了三 四个小时有时候只是把讲师四十分钟的搞完。然后精疲力竭 的倒下。 拥有太多的东西总是不会去珍惜的。我懒惰的恶习让我异常 痛苦。我现在唯一拥有的财富就剩下我的青春了,我发誓我 会努力努力再努力,捍卫自己的青春,我说过我会成为伟人的。以后我会给自己出ail邮件开发详解》的作者之一方**。现在列举出这些东西并实现技术虽然很容易,但是在当时学 习的时候可是吃了不少苦,因为开始不懂啊,就拿人家写好 的代码,一个显示屏幕分成两块,开始手动copy...虽然写出了功能,但是没过多久就会忘记,即使3个月不忘记,6个月也会忘,因为它不是自己的东西嘛。这些问题是在我第 二次写东西的时候发现的,因为要对自己负责嘛。所以自己 很难受。于是开始找方老师想办法,他给我讲解了一遍这些 技术的实现思路并操做演示给我看。在他讲解完,我是茅塞 顿开。自己开始继续写,可是一写就发现还是不会,又开始

【心得体会范文】java实验心得体会精选

java实验心得体会精选 java实验心得体会一:软件专业java实习心得 大学生活临近了尾声,这短短的三年,却是我的人生中弥足珍贵 的时光。在这三年里,我从一个莽撞少年成长为一名合格的大学生, 用脱胎换骨来形容并不为过。总结过去可以拨开时间的迷雾,清晰的 回首所走过的路,从而为将来的人生旅程准备一些经验和教训。 大学生活主线是学习。大学学习是迥然不同于以往的一种新形式,它赋予了学习者更大的自主性和更广阔的思维空间,同时也对学习者 提出了更高的要求。在这种半开放式的教学模式下,要求学习者必须 有明确的学习目的,有更强的选择辨别能力和更强的自学能力。对于 这个方面,我应该感谢大学这四年的学习生涯,在这期间的历次挫折 与成功,使我真正知道了怎样进行自我学习,怎样有选择有目的的学习,随之而来的是自己自学能力和学习效率的提高。而学习之外的课 外科技活动的参与,同时也是对所学知识的一种巩固和加强,它不仅 提高了我的动手能力,拓宽了我的知识面,而且在不断的探索过程中,也促使自己学习更多更新的东西,这更进一步丰富了自己的理论知识。 通过此次实习,让我学到了很多课堂上更本学不到的东西,仿佛 自己一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义, 时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的, 只要勇敢去面对人生中的每个驿站!这让我清楚地感到了自己肩上的 重任,看清了自己的人生方向,也让我认识到了文秘工作应支持仔细 认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到 什么事都要总代表地去思考,多听别人的建议,不要太过急燥,要对 自己所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。单 位也培养了我的实际动手能力,增加了实际的操作经验,对实际的文 秘工作的有了一个新的开始,更好地为我们今后的工作积累经验。

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

JAVA实训总结

JA V A程序设计课程实训报告 一、实训目的 知识目标 1.了解图形用户界面的编程思路及方法; 2.了解事件及事件处理机制; 3.掌握常用的图形用户界面组件; 4.掌握容器布局的设置方法及组件的添加方法; 5.掌握常见事件类型及事件处理方法; 能力目标 1.与客户沟通的基本能力; 2.团队协作的基本能力; 3.编程的良好习惯; 4.软件调试和测试的能力; 5.查阅文献的能力; 二、项目设置: 1、实训内容 利用所学Java程序设计语言实现一个图形化的计算器。 2、实训要求 1.程序运行正常无误,系统层次清晰合理; 2.实训内容里的要求必须要全面实现; 3.实训过程中要仔细操作,细心观察,勤于思考,注意记录; 4.实训报告要做到文字通畅、论点正确、论述有据; 5.要求学生在指导教师的指导下,独立完成实训的全部内容; 6.在规定时间内完成实训的全部任务,并按规定格式上交实训报告; 三、实训设备 硬件:个人电脑、 软件:JCreator Pro 3.50、JDK1.6.0_23 四、实训过程

以上的图表示实训编写的程序没有错误,可以正常的运行 以上的图是运行程序时所显示出来的小小计算机的界面

为了实际的运行一下计算机的功能,此时输入1加2

此时计算机上显示的是数字1和数字2相加的结果,3. 为了实际的运行一下计算机的功能,此时输入数字1乘数字2

此时计算机上显示的是数字1和数字2相乘的结果,2.

因为上述的两个小算数成功的运算出正确的结果所以此时关闭小小简单计算机的界面此时出现的编程图面为: 计算机程序的源码: import java.awt.*; import java.awt.event.*; import javax.swing.*; //计算机界面 class CalculatorPanel extends JPanel { private JLabel display; private JPanel panel; private double result; //用以存放最后的计算结果 private String lastCommand; //计算你选择的运算方式 private boolean start; public CalculatorPanel() {

JAVAWEB实训心得体会

jsp+servlet+mysql 论坛项目实训总结 实训人:程路峰学号: 11103303 通过为期 10 天的实训,我学习了很多关于 java web 的知识。在老师的正确指导下,顺利的完成了我的实训内容。在此,也有同学的帮助,在他们的帮助下我也受益匪浅。最终,能顺利完成实训的任务也很高兴。 在实训生活中,我了解开发项目的需求、设计、实现、确认以及维护等活动整个过程,让自己开始懂得一点软件工程的知识点。 首先,了解需求分析的重要性,比如:需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求, 从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个 for linux 的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发 for windows 的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。所以,需求分析是成功的第一步,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。 然后呢?确实客户的需求的以后我们要做什么呢,那当然是设计和分析。此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 接下来是代码实现,此阶段是将网站项目设计的结果转换成计算机可运行的程序代码,我们这个项目为 4 个模块,1.界面,2.逻辑层。3 实现层。4.数据库及使用说明文档,分别为4 个小组成员完成。这阶段我学到很多编程的思想,如: 分层思想、mvc、三大架构的整合、dao 的编写。 编号程序之后就是软件测试了,此时在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。由于时间有限,我们测试是简单的使用一下每一个功能。 在编写代码时,由于自己技术知识水平不广,常常遇到技术难题;还有自己没有良好的编程习惯,不注释,有时连自己也看懵了;编程的结构不好,维修和修改代码是很慢。这次实训让我意识到了自己做为计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境” 这句话的涵义。而所学的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。 在这次实训中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。实训过程中,除了要专业知识,包括人际交往,沟通方式及相关礼节方面的内容,对于团队开发来说,团结一致使我深有体会。团队的合作 注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这也是实训最大的收获。

Java实习报告心得总结

Java实习报告心得总结 Java实习的开展能使实习生们在编程的理论知识上有所巩固和深化。下面是xx推荐给大家的,希望能带给大家帮助。 篇一:1、传统的错误观念 以前以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那如何定位如何解决通通跟一样能力有关,debug追踪能力,也称调试.在项目组工作不愁源码,但问题是蛋糕摆在面前,你如何去消化 有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题.但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你. 2、如何调试追踪 如果你能在短短的时间内就看到问题点在那,放下断点去追踪,出去找工作,绝对没问题.出现问题的时候,不要光看代码,要用实际行动去追踪运行期间的具体值,那是最好途径.eclipse是个很爽的idea,这点做的很好.例如页面内容显示不是自己想要的数据,我们要先从数据库查询语句去

下手,设置断点,一步一步step over,让sql字段(存取最终sql语句的字符串)运行到有值,inspect进去看,如果还看不出来,就点击它,copy后在sql客户端去实际运行,看看实际查询出来的表是什么,如果是对的,有可能就是页面调用的错误或者action逻辑的传值问题. 页面错误的调试,基本方法是用右键点击实际页查看源代码,copy 到editplus,就能看到具体错误发生在那几行.通常有几种常见的错误,.例如.缺少对象这种很多时候是有些被你调用的字段有可能为空的情况出现的,可以加if(xxx=null)语句加保护.追踪的方法基本就是用alert语句,放在有可能出错的地方.毕业实习总结 3、一些习惯 遇到问题先自己思考,无从下手再找高手帮忙看看,注意他帮你看的思路,别在一旁闲着,看多了自己也会了,不然你一辈子都停留在那种水平,从人身上学到的东西远远比书多的多. 解决了一个问题后,要去究根问底去找到问题产生的起因,以防你下次遇到类似的问题再浪费同样的时间. 把代码写的漂亮,注释,空行,规范一样不能少,可读性是放在第一位.曾经看过一个高手写的代码,真的一看就是不同水平的人写的,几乎很完美,读起来很流畅,方便自己也方便别人.

javaweb学习心得范文

javaweb学习心得范文 时间过得真快,转眼间,在××实训基地短短20天的实训生活 已悄然过去几天了,然而实训的过程还历历在目。 经过几天的JAVAwebOA办公系统开发的实训,我对JAVA软件开 发平台有了更深一步的了解与深入,对MyEclipse认识与使用也有 了大大的提高。开发这个OA办公系统用到知识几乎都是以前课本上 所没有学到这,很多都是现学现卖,所以用起来遇到很多的阻力。 我做的模块是考勤的请假管理,要用到DAO,和MVC设计思想模式。听课的时候不太明白这是怎样的一种设计模式,随着慢慢的深入开发,通过解决各种问题,体会到了这两个设计模式的一些要领。虽 然后面和数据库连接时成功,但是却没有在数据库看到应该增加进 去的内容,调试了很久还是没有成功,由于时间问题最后只好作罢。但是我有决心会去弄明白它。 这次实训也让我深刻了解到,不管在工作中还是在生活中要和老师,同学保持良好的关系是很重要的。做事首先要学做人,要明白 做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多, 他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向 他们学习很多知识、道理。突然想起鲁迅先生的一句话:这里本来 没有路,只是走的人多了,也便成了路。生活的路呢?生活的路也是 人走出来的,每个人一生总要去很多陌生的地方,然后熟悉,而接 着又要启程去另一个陌生的地方。在不久就要踏上人生另一旅程的 时候,有时不免会感到有些茫然,感到无助,但生活的路谁都无法 预设,只能一步一步摸索,但只要方向正确,不要走入歧途,走哪 条路都走向光明。 此次只实训了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的 理解,不仅使我在理论上对Java有了全新的认识,在实践能力上也

JAVA实验报告心得

北京联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: java上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: 2012年12月19日 版本:指导教师:北京联合大学-信息学院编制 实验1 熟悉java运行环境 实验目的:熟悉jdk环境和操作,编写简单的java应用程序。 心得体会:在该实验中,我碰到的问题是jdk环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用java的if和switch语句。 心得体会:我个人感觉有了c的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟c非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与c区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charat()方法,经查阅jdk 文档,知道charat()方法返回一个位于提供给它的参数索引处的字符,如: (0)检索str中的第一个字符,()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0; i<6; i++){ n[i] = aa%10; etname()是获得正在执行的线程的名字,().getid()是thread类中返回该线程的标识符的方法,().getpriority()是thread类中返回线程的优先级的方法。 实验12 i/o及文件处理 实验目的:掌握并使用java中的i/o和文件。 心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周java实训时继续攻坚克难。 结语:在这一系列的实验中,我基本掌握了java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。篇二:java实训心得 java实训心得 在上学期的最后一周和本学期的第一周,我和同组的学员在学校机房进行了java暑期实训,现在已经结束了。 回首上学期的java学习,重点还是在学习概念等一些常识性的东西,application应用程序和applet小程序,它的开发工具、数据类型、变量、接口、输入输出流等。学会分析异

JavaSE知识点总结(个人整理)

2. 面向对象的理解 面向对象是Java的基本特征,是软件开发过程使用的基于面向过程一种思维方式,将功能封装进对象,强调具备功能的对象和调用结果,不关注具体实现这个功能的过 程。 面向对象特点:是一种更符合人们思考习惯的思想,可以将复杂的事情简单化,将程 序由执行者转换成为指挥者。 面向对象特性:封装,继承,多态 封装:封装是把数据和方法包装进类中,隐藏其具体实现细节,对外提供公共访问方法。封装的结果是一个同时带有特征和行为的数据类型。(安全性,复用性) 继承:当一个类的属性与行为均与现有类相似,属于现有类的一种时,这一个类可以 定义为现有类的子类。或者,当多个类具有相同的属性和行为,我们可以抽取出共性 的内容定义父类,再创建相似的”兄弟”类时只要继承父类即可。当子类继承父类后,拥有了父类非私有的方法并可以直接调用。如果认为父类提供的方法不够强大,子类 可以按照子类自身的逻辑重写继承过来的父类方法。(复用性,可维护性,多态前 提) 多态:继承是多态的前提,多态是指一种事物具有多种形态,比如猫具有猫类的形 态,也具有动物的形态,多态的具体表现是父类引用指向子类对象,父类的引用也可 以接收自己子类的对象。(可维护性,扩展性) 面试:跟我谈谈什么是面向对象 1 面向对象是基于面向过程的 2 什么是面向过程什么是面向对象 3 面向对象的特点 3. 面向对象和面向过程的区别 面向过程强调的是功能行为,分析解决问题所需的步骤,以函数为基础,完成各种步 骤的操作和实现。 面向对象是基于面向过程的,将功能封装成对象,强调的是具备了这些功能的对象, 让对象去调用方法来解决问题。 面向对象举例

java培训心得体会

java培训心得体会 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己的理想和抱负更加的坚定。对于一个投身于IT 的新人,经验谈不上,一些学习的心得倒是可以拿出来探讨一下,我们该如何面临这个似曾相识的社会,突然一天如此接近。面对“金融风暴”带来的就业压力,我们正在逐渐走向成熟,我们意志更加坚强,我们深知不经一番寒彻骨,哪来梅花扑鼻香。深深地体会到找一份好工作多么不容易的,尤其是能力匮乏的我们。一切都要付出行动,不能空想,要实现目标,就得不懈的努力。 的确,软件仍然是一个朝阳行业,对于人才的需求量也很大,这也是为什

么很多人努力走上这座独木桥的原因。但是当你面临人生的一个选择时,当你决定要踏上软件开发之路时,你应该问一下自己:我为什么要选择它?其实很多人在这条道路上摸爬滚打了多年也没弄清 楚这个问题的答案。如果你想在这条道路上有所成就的话,一是兴趣使然,二是做好自己的职业规划。软件开发其实是一条非常艰苦的路,不停的学习,不断的熬夜,没有鲜花更没有掌声,陪伴你的是那漫长而孤独的夜。想一想我们准备好迎接这一切了吗?如果没有兴趣我劝你还是放弃这条路,没有兴趣你就在这条路上走不长,等待你的只有转行。如果你真的把它作为你职业生涯的跳板,那么请你做好自己的人生规划,有步骤的实现它。话题稍微远了一点,现在我就谈谈自己在Java学习方面的心得和教训。 古人云:活到老,学到老。读书学习实乃艰苦之事,花费时间,消耗精力。 然苦之外亦见其乐:得到了知识,提高了认识,完善了自己。学习,求其真,务其实,应“敏而好学,不耻下问”,才能不断促使进

JavaWeb期末总结

第一章Web开发基础知识(简单描述)表单(续) 表单元素

form body
元素括起整个表单,并给出一些基本定义。表单仅占用HTML文档的部分空间;实际上,一个HTML文档可以包含几个独立的、完成不同功能的表单。method指定了信息传递给HTTP服务器的方法;action给出与处理提交信息的脚本相关的URL(如“registinfor.asp”,“registinfor.jsp”)。 表单输入元素 ?用来把不同的字段放在表单里,以便用户输入信息。 ?name属性指定该字段在某个表单中的唯一名称; ?可选的value属性给出该标记的默认值。 ?在提交表单时,向Web服务器呈上以一组用“?”开头并用“&” 号分开的一组“名字=值”形式的信息,如 http://…/Scriptname?name=me&address=here&time=now ?type属性给出所使用标记的样式,“string”可以是: ?CHECKBOX(复选框)。 ?RADIO(单选按钮) ?TEXT(单行的文本输入栏)。 ?IMAGE(图像放在表单里) ?SUBMIT(提交按钮) ?RESET(清除按钮) ?HIDDEN(在表单中保留不供显示的内容) ?FILE(上传文件) 第二章Servlet开发 1.什么Servlet Servlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP (HyperText Transfer Protocol)协议进行工作的。(可以认为Servlet是服务 器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。) 2. Servlet的主要方法 Servlet是一个Java类,通常会有3类方法,分别是: init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的

java项目心得体会.doc

java项目心得体会 篇一:项目部心得体会 篇一: 项目心得体会 项目 心得体会 通过这次做项目, 使我对编程有了进一步的认识。做项目的时候,最重要的不是自己如何快速地将自己分配的 任务做完,而是要注重团队合作。一开始组内必须对这个项目的数据库的命名进行讨论,定 义表的属性的数据类型,表与表之间会有关联,所以有的属性的类型与长度必须定义一致, 这样访问数据库时才不会出错。如果一开始不将这些步骤统一下来的话,就会给后面的编程 带来一系列的问题。 我做的是销售管理, 做的内容包括查询销售记录、查询退货记录、销售添加和商品退货这四个界面。同时对四个 表进行处理,对销售主表、销售明细表这两个表插入数据;对销售主表和销售明细表进行退 货操作的同时,对退货表进行插入数据的操作;最后对销售主表和退

货表进行查询操作。 做这个项目的时候, 我浪费了太多的时间在销售添加界面上。首先对于界面的一些布局没有考虑清楚就动手,不 知道如何运用java语言来对数据库进行处理,对于细节方面考虑地不全面,导致了遇到了错 误就不停地修改。在插入数据到销售主表中停留的时间太长,不懂得运用打印功能来检查错 误。同时在修改库存的时候完全没有思路,只对库存进行了修改却在销售时没有对库存进行 判断,这就是程序的一大错误之处。正如老师所说,在第一个界面完成之后,接下来的商品 退货界面做起来就不太难了,对这个项目实现的功能也有了一定的了解,以及对这个项目如 何动作的有了基本的了解。 其实我在这个模块 遇到的最大的问题就是,一开始对这块模块到底实现的功能与细节分析得不彻底,所以在开 始编程的时候就手足无措。于是这部分的代码就出现了许多漏洞,然后在运行程序的时候就 不停地修补漏洞。接着就对这个界面的功能进行不停地完善,在修改的过程中也就浪费了许 多时间。

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目

相关文档
最新文档