javaweb经典项目源码怎样实现数据库中添加新记录

|||||| 更多
比特客户端
我们也在这里:
JavaWeb三层架构的配置详解
关键字:Java
  新手入门JavaWeb三层架构的配置详解,推荐使用,but暂时找不到下载地址,由于此次偶们班有课程设计要用的,所以下面实践会使用sqlserver(找张安装盘安装)。
  一、软件下载:
  1、java
  这里使用的是jdk1.4.2。
  2、tomcat
  这里的tomcat的版本是5.0的,安装版或是解压版都是可以的。
  3、数据库
  推荐使用mysql,but暂时找不到下载地址,由于此次偶们班有课程设计要用sqlserver的,所以下面实践会使用sqlserver(找张安装盘安装)
  上面包括完整的配置方法
  二、软件安装 :
  1.双击安装jdk。
  装完后在我的电脑-&属性-&高级-&环境变量-&系统变量中添加以下环境变量:
  (假设你的JDK安装在c:/jdk)
  JDK_HOME=C:jdk
  classpath=.;%JDK_HOME%libdt.;%JDK_HOME%libtools.jar
  在PATH(原来就已存在)中添加:%JDK_HOME%bin
  这样jdk环境配置成功。
  2.双击安装你的Tomcat。(建议安装在D:/tomcat)
  注:tomcat5.0.x版本不需配置环境变量就可以使用,但如果需要编译Servlet则必须将tomcat的两个jar文件也放到环境变量中,具体方法如下:
  在我的电脑-&属性-&高级-&环境变量-&系统变量中添加:
  TOMCAT_HOME=D:tomcat
  修改classpath变成:.;%JDK_HOME%libdt.%JDK_HOME%libtools.%TOMCAT_HOME%commonlibservlet-api.%TOMCAT_HOME%commonlibjsp-api.
  这样已经完整安装完Tomcat了。
  建议:在PATH中再添加:%JDK_HOME%%TOMCAT_HOME%bin
  这样做的目的是在虚拟dos中可以使用tomcat的工具
  最后顺便把第一步下载回来的三个jar文件放到tomcat目录下的common/lib目录中
  3.测试:
  打开开始菜单中的tomcat(小猫图案)的monitor工具,点击start server,显示绿色三角形即为启动,打开在地址栏输入:http://localhost:8080/可以看到小猫图案说明已经配置成功。
  4.安装(sqlserver)
  windows xp下必须安装个人版或开发版(个人推荐个人版)。
  一直next就可以(的东西就是方便),这里注意到域帐户那里选择本机帐户,到验证那里选择混合验证(这点很重要,若选择系统认证以后在程序中就连接不上数据库),为你的sa用户输入一个密码(如果练习用就不用考虑安全性啦,选择“空密码”就可以)
  三、正式编程:
  1.建立数据库
  打开开始菜单找到sqlserver的快捷方式组里面的管理器,点开左边的树一般有个localhost连接,如果有个绿色三角形符号证明数据库连接成功。点击邮件新建数据库,在你新建的数据库中再新建个数据表(例如叫test),数据表建立若干字段。
  补充:提供另一种建表方法是使用sql脚本建表。首先创建如下文件:
  test.sql
  create database test
  USE test create table test
  id int not null identity(1,1),
  mark varchar(255),
  name varchar(255),
  sex varchar(255)
  然后打开开始菜单中sqlserver快捷方式组中的查询分析器,点击“文件”-》“打开”,选择test.sql,点击运行即可。
相关文章:
[ 责任编辑:之极 ] &&&&
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte新手想小试牛刀,已经建立好mysql数据库表添加了几行数据.现在想通过java web吧mysql里的几条数据显示到网页上!
[问题点数:20分]
新手想小试牛刀,已经建立好mysql数据库表添加了几行数据.现在想通过java web吧mysql里的几条数据显示到网页上!
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?_百度知道
你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?
java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?求代码
提问者采纳
Session session = sessionF
SessionFactory sessionFactory = (SessionFactory) factory
,;&upload&
File excelfile = new File(ServletActionContext, mname);/&#47,;;&#47,;applicationContext.getRealPath(&&#47.)
+ & rownum++) {
mname = + filepath);
} finally {
book.setString(0;insert into media values (seq_
query.xml&quot?;
int rownum, rownum);
String sql = &quot.getBean(&quot?; rownum &
book = Workbook.getContents().getWorkbook(excelfile); sheet.getCell(0;
Query query =
Sheet sheet = book.getSheet(0);sessionFactory&
} catch (Exception e) {
e.printStackTrace();
BeanFactory factory = new XmlBeanFactory(resource);),;).getRequest()
,?)&mit().trim().executeUpdate();
String mname = null.beginTransaction().openSession();
Workbook book =/
session?.createSQLQuery(sql).getRows()?; 工作簿是从0开始的
for (rownum = 1Resource resource = new ClassPathResource(&quot.close()
applicationContext.xml 这个文件的相关代码 和 media
是sql脚本给我可以吗?
我搭的是SSH
ApplicationContext就是连接数据库的 没什么用 主要是下面的代码
media是一个表的名字
excel的文件的列又不是固定的,你这个表的字段难道不是固定的?
Excel的表头除了主ID
其他的跟表结构一样的啊
我说的是media 你创建的这个表,难道会跟所有的excel的列数一样吗?如果不一样的话,那怎么插入进去了,有没有想过这个问题?
Excel表的表头和Media表是一样的 就少了个id
id我给的自增列
如果Excel表少些的话 给null
多的话就在sql语句里面处理
接收你还是照常接收
但是插数据库的话 就看你自己处理了
那要是excel的有合并的单元格的呢?怎么用insert插数据进去?
既然有合并的单元格 你就知道哪两个值是合并的
你能获取这个值 再赋值给另外一个变量插入数据库不就好了?
Excel的规则是你定的 用户想导入就必须按照你的规则来
其他类似问题
按默认排序
其他2条回答
给你个思路,就需要用到 上传功能 怎么传搜度娘2。。而且这东西痛过一次就好嘞代码就不上嘞。。。。。太多。首先分解问题 1.插入数据库 insert就好 考虑性能和效率 建议用批量 4.java后台要读取excel.java读取excel 我用的是jxl这个jar 怎么用搜度娘3。。
来自:求助得到的回答
poi和jxl这两个都可以
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1395人阅读
数据库中的表:
和javaBean中对应
javaBean:
public class mainpart {
private S//名称
private S//规格
private S//供应商名称
private String authenticatedM//认证标志
private S//标准
private S//参数
private Integer modelId;
public Integer getModelId() {
return modelId;
public void setModelId(Integer modelId) {
this.modelId = modelId;
public String getAuthenticatedMarks() {
return authenticatedM
public void setAuthenticatedMarks(String authenticatedMarks) {
this.authenticatedMarks = authenticatedM
public String getStandard() {
public void setStandard(String standard) {
this.standard =
public String getParameter() {
public void setParameter(String parameter) {
this.parameter =
public int getId() {
public void setId(int id) {
public String getName() {
public void setName(String name) {
this.name =
public String getSpid() {
public void setSpid(String spid) {
this.spid =
public String getSpecification() {
public void setSpecification(String specification) {
this.specification =
public String getSuppid() {
public void setSuppid(String suppid) {
this.suppid =
public String getSuppname() {
public void setSuppname(String suppname) {
this.suppname =
上传调用:思想是读取excel中的每一行数据,从第1行起(第0列为表头),每列的数据转换为string类型的,在通过sql语句
依次插入数据库(插入,更新的两个函数就不再贴出了)
public class MainPartimportBean {
private static Logger log = Logger.getLogger(SampleBean.class);
public void insertDB(InputStream fp,String modelId) {
HSSFWorkbook workbook = new HSSFWorkbook(fp);// 创建工作薄
HSSFSheet sheet = workbook.getSheetAt(0);// 得到工作表
HSSFRow row =// 对应excel的行
HSSFCell cell =// 对应excel的列
String Var=&&;
row = sheet.getRow((short)0);
int totalRow = sheet.getLastRowNum();// 得到excel的总记录条数
int modelId2 = Integer.valueOf(modelId);
String name = &&;//名称
String specification = &&;//规格
String suppname = &&;//供应商名称
String parameter = &&;//参数
String standard = &&;//标准
String authenticatedMarks = &&;//认证标志
for (short i = 1; i &=totalR i++) {
mainBean mb = new mainBean();
mainpart mp1 = new mainpart();
row = sheet.getRow(i);
cell = row.getCell((short)0);
if(cell!=null)
name = cell.getRichStringCellValue().toString();
mp1.setName(name);
cell = row.getCell((short)1);
if(cell!=null)
specification =cell.getRichStringCellValue().toString();
mp1.setSpecification(specification);
cell = row.getCell((short)2);
if(cell!=null)
suppname =
cell.getRichStringCellValue().toString();
mp1.setSuppname(suppname);
cell = row.getCell((short)3);
if(cell!=null)
parameter =
cell.getRichStringCellValue().toString();
mp1.setParameter(parameter);
cell = row.getCell((short)4);
if(cell!=null)
standard =
cell.getRichStringCellValue().toString();
mp1.setStandard(standard);
cell = row.getCell((short)5);
if(cell!=null)
authenticatedMarks =
cell.getRichStringCellValue().toString();
mp1.setAuthenticatedMarks(authenticatedMarks);
mp1.setModelId(modelId2);
if(mb.isEmptymainpart(authenticatedMarks))
mb.updataMainBymainpart(mp1);//防止数据重复
mb.newMainUpdata(mp1);//插入数据
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
&script type=&text/javascript&&
function imp(modelId){
var form = document.getElementById(&form1&);
form.setAttribute('method','post');
if(form.encoding){
form.setAttribute('encoding','multipart/form-data');
form.setAttribute('enctype','multipart/form-data');
form.setAttribute('action','&%=path%&/b.jsp?modelId='+modelId);
form.submit();
&/script&&body topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0 &
&form id=&form1& name=&form1& &
&table width=&750& border=&0& align=&center&&
&tr height=&30&&
&td width=&5%&&
&img src=&&%=path%&/images/orgadd.gif&/&
&td width=&10%&&
&input type=&file& id=&f1& name=&f1& style=&position:filter:alpha(opacity=0);width:30& onchange=&imp(&%=modelId%&)&/&
&input type=&button& name=&checkSAPmain& id=&checkSAPmain& value=&导入数据& Class=&listLink&
&td align=&left&&
&font Class=&contentLabel&&导入数据&/font&
b.jsp:(先上传了文件,在对文件进行处理,避免服务器和客户端不是同一机器时出错)
&title&My JSP 'dataSave.jsp' starting page&/title&
&meta http-equiv=&pragma& content=&no-cache&&
&meta http-equiv=&cache-control& content=&no-cache&&
&meta http-equiv=&expires& content=&0&&
&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&
&meta http-equiv=&description& content=&This is my page&&
&link rel=&stylesheet& type=&text/css& href=&styles.css&&
&Script type=&text/javascript&&
function onload(){
var existSub=document.getElementById(&existSub&).
str=window.encodeURI(existSub);
str=window.encodeURI(str);
var path=&&%=basePath%&standard/stdDefault.jsp?existSub=&+
self.location.href=
self.parent.frames[&sdtree&].location.href=&&%=basePath%&standard/standTree.jsp&;
String modelId = request.getParameter(&modelId&);
MainPartimportBean mp =new MainPartimportBean();
String existSub=&&;
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 10);
// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录
// factory.setRepository(new File(&f:\\test&));// 临时文件
// 用上面的工厂实例化上传组件,
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大上传大小 10M
upload.setSizeMax();
String name = &&;
List items = upload.parseRequest(request); // 得到所有FileItem
// 上传文件的个数
Iterator iter = items.iterator();
// 循环处理所有文件
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 判断是否是表单元素(&input type=&text& /&单选,多选等)
if (!item.isFormField()) {
// 得到文件的名称
name = item.getName();
// 文件长度
long size = item.getSize();// 过滤大小
if (name == null || &&.equals(name.trim())) {
// 未选择上传文件
// 以下为文件名处理,将上传的文件保存在项目所在目录下。
// 获取文件名字符串的长度
//int end = name.length();
// 返回在此字符串中最右边出现的指定子字符串的索引。
int begin = name.lastIndexOf(&\\&);
//int start = name.lastIndexOf(&.&);
// 输出上传文件类型,此处可以进行类型的过滤
System.out.println(application.getRealPath(&/js&)+System.getProperty(&file.separator&)+name.substring(begin + 1));
// File file = new File(&f:\\&+name.substring(begin + 1, end));
File file=new File(application.getRealPath(&/js&)+System.getProperty(&file.separator&)+name.substring(begin + 1));
if (file.exists()) {
file.delete();
item.write(file);
ByteArrayOutputStream byteOS = new ByteArrayOutputStream();
FileInputStream fis = new FileInputStream(file);
byte[] by = new byte[512];
int t = fis.read(by,0,by.length);
while(t&0){
byteOS.write(by, 0, 512);
//这里别写成t,写够512
t = fis.read(by,0,by.length);
byteOS.close();
InputStream byteIS = new ByteArrayInputStream(byteOS.toByteArray());
POIImportExcel pe=new POIImportExcel();
mp.insertDB(byteIS,modelId);//只有这里是调用了函数,其他地方都为固定格式
byteIS.close();
file.delete();
existSub=&&script&alert('导入成功')&/script&&;
} catch (FileUploadException e) {
existSub=&&script&alert('文件不能大于10M')&/script&&;
e.printStackTrace();
} catch (Exception e) {
// 处理文件写入时的异常
e.printStackTrace();
request.getRequestDispatcher(&a.jsp&).forward(request, response);
&body onload=&javascript:onload();&&
&input type=&hidden& id=&existSub& value=&&%=existSub%&&&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13596次
排名:千里之外
原创:14篇
转载:11篇
(1)(3)(1)(1)(2)(11)(6)第一篇:javaweb
在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,过滤器,监听器,jstl,el,jquery,ajax。
下面就各个模块进行总结:在学习html时,我是对这个没太在意的,因为里面全部是标签,没有需要理解的内容,全部是属于识记的,所以在学习时相对轻松,对于html常用的标签都是非常清楚的form中的十一种类型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的标签如div,table,span,select都是重要的标签.
css的学习:虽然说在标签中也可以定义样式,但是这么做看起来不是那么明智,我在学css时还是比较努力的,所有的样式效果都测试过,并且写了相应的案例,只是过了不到3个月就忘了一大半,很多时候都是查文档才能写出来的,虽然css对于我们来说不必要非常精通,但是我觉得掌握的东西越多,以后的工作就越轻松,所以在中级结束后也会去看看前面的笔记和案例。
javascript:js 我认为是最重要的,甚至于超过servlet,jsp,在上课期间,讲的内容还是比较少的,就javascript中创建对象来说吧,应该只讲过3中方法,虽然在一般的情况下是用不上的,但是我觉得还是有必要学习的,这样有助于看懂别人写的框架,在javascript这部分学习中讲的最多的还是dom操作,不过我觉得用dom操作太繁琐了,写的代码太多,而且效率看起来也不高,后面就是讲的事件,事件也算是简单的,只是对触发的事件进行相应的响应。除了这些就是javascript流程控制,对象一些基本语法,这些和java类似,所以在上课时没有讲得太多。
xml: extensible markup language可扩展标记语言。它是由sgml(standard gerneralized markup language)发展而来的,允许开发者自定标签,可以将标签和内容有效的分离。在xml技术里,可以编写一个文档来约束xml文档的书写规范,称之为xml约束。本文主要介绍dtd与schema两种约束,在这里学习了dtd,scheama,定义xml约束,这部分的学习是我感觉最累的一部分,dtd还算好,scheama里面的内容,现在都忘了,没有任何记忆,只知道在xml约束中有着两中方式,还好这些在刚开始工作时是用不上的,因此我也没有用很多时(敬请期待好网更好文章:)间来学习。
servlet:我觉得是比较简单的,可能是因为它是java代码,容易理解。首先讲的是开发环境的配置,安装tomcat,了解tomcat下的目录,以及web工程下的目录。后来是讲了servlet的访问方式,post和get的区别,处理中文乱码是servlet中一个重要的知识点,几乎每个项目都会遇到这个问题。主要乱码有get,post乱码,是通过设置request或者response的编码方式来实现的。servlet间的跳转方式有重定向和转发,对于重定向和转发的区别,现在理解的很透彻了,重定向是不能获取request中参数,是客户端的两次请求,而转发是服务器内部跳转,不过,两种在设置过滤器的情况下,都要通过过滤器才能跳转。servlet的生命周期是笔试的必考题,其实这是很简单的,只需要理解,没必要死记硬背的,session算是重要的知识点,很多数据都是存储在内存中,如购物车,用户信息等,还可以对session设置生存时间。说到session就必须说说四种会话跟踪技术,cookie,url重写,表单域隐藏和session。
jsp:jsp实际上和servlet是一样的,只不过两者侧重点不同,jsp的内置对象和作用域大致是一样的,jsp中还有动作,常用的有操作javabean的动作,页面跳转的动作,以及包含的动作。这里重点提到两种包含的区别。在jsp还讲过jstl和el表达式,都是基础的应用,不过写自定义的标签还是要有一定的java基础的,我开始不太理解标签的解析过程,后来看了几个例子,发现自定义的已不是那么难。
jquery:jquery可以说是中级部分学的最好的,主要是它方便了,特别是选择器,而且避免了一些浏览器的差异,所以在学习jquery后,就再也不想用javascript来获取元素了。不仅如此,jquery中封装的ajax操作也是非常简单,不需要自己封装一个类,$.get和$.post 能够省去很多麻烦,jquery的监听事件也是很简单,不需要在标签中添加对应事件,可以动态的绑定事件。还有就是dom操作更是方便。我在学习完ajax,json后就发现,即使是没有jsp,也能做出一个动态页面出来,只是会存在效率问题。
总结:虽然说这上面的知识大部分都掌握了,但是能否灵活运用才是重点,所以在今后的学习中多思考问题是否有多种解决方法。
第二篇:javaweb学习
javaweb学习笔记___d9.txt
session (会话)
session对象
1、存在于服务器端
2、依赖于线程
3、session的生命周期,跟一次浏览器窗口有关,只要窗口不关闭,session便存在,所以称会话。
1、技术内核使用cookie:
session参在与服务器端
服务器端为多个session创建不同的session id
把session id以cookie的形式送入到客户端
request.getsession()内涵是:在cookie中查找
session id,若cookie中存在sessionid,则根据
sessionid,将sessionid对应的session找到,
并返回;若cookie中并不存在sessionid,
服务器端创建session,并将sessionid写入到cookie中。
2、当关掉对话窗口(结束一次会话)时,session并没有被删除,只是关掉对话窗口时,cookie被清空
无法再获得sessionid,无法找到对应的session,但是session还是存在于服务器端。
若想真正删除session,需要调用httpsession中的invalidate()方法,使得session失效。
3、服务器为了考虑效率,不会让无用的session存在很久,http协议是无连接协议,服务器端无法判断客户端是否关闭&会话&,
所以服务器设置了失效时间。若用户在了段时间内,不操作session,则系统删除session。
我们可以设置此时间setmaxinactiveinterval(),但不推荐用户自行设置。
4、session技术在很大程度上,依赖于cookie,若cookie被禁用,或浏览器不支持cookie,则session就无法使用。
5、为了解决第四点所引申的session不可用的问题。我们使用url重写,将sessionid通过地址栏提交参数,发给服务器端。
使用response.encodeurl()在地址栏中加载sessionid通过
request.getparameter(jsessionid)得到sessionid
a、string url encodeurl(string url);通过超链接,重新发出请求,此请求会在地址之后自动加上sessionid及其id值,
此方法又被子称为url重写,或重新封装。
b、string url encoderedirecturl(string url);将地址封装成
sendredirect方法所需要的地址,并在此地址后加入sessionid
servlet api小结:
httpservletrequest:接口
1、setattribute()、getattribute()、getattributenames
getparameter()//只能获得表单中的内容
2、getcharacterencoding()、setcharacterencoding()
获得、设置request中的数据编码方式
3、getcontenttype()得到mime,即ie文件打开的方式
4、cookie[] getcookies()
得到当前所有的cookie
5、getsession()
获得或创建session
6、getrequestdispatcher(string path)将目标页面封装,为了forward()进行页面转向。
7、getrequestedsessionid()得到一个session的id
request对象封装了客户端的请求和相关信息。
2、封装http协议的报头(请求方式、请求服务器的端口、请求服务器ip地址、编码方式、
请求的项目用的名字、请求消息的长度、浏览器的信息、客户端信息??)
3、表单数据
httpservletresponse:接口(响应)
用它跟客户端联系,并且向客户端发送数据
1、getcharacterencoding()得到向客户端发送数据的默认编码方式。
2、getcontenttype()得到向客户端发送数据的默认类型(html或者jpeg等等)。
3、getoutputstream()得到与客户端建立的输出字节流,传输二进制。
4、getwriter()得到与客户建立的输出字符流,传输文本文件。
5、setcharacterencoding()设置的是要发送给客户端的数据的编码方式。
6、setcontenttype(string type)设置并告知客户端,执行这些二进制时,用何种类型打开(html、jpeg等等)。
7、addcookie(cookie cookie)将cookie的键和键值成对的送到客户端
8、一些的set方法用来指定客户端运行时的一些属性。例:缓存、打开方式、消息头的控制等等
9、encodeurl(string url)、encoderedirecturl(string url)**在地址后追加session的id,用来实现cookie被禁用后,session依然可以使用。
10、sendredirect(string location)页面的重定向
1、cookie(string name,string value)创建cookie并将键,键值,存入到cookie中
2、getmaxage(int)设置cookie的生命服周期,当参数是负数时:窗口(会话)被关掉时,清空cookie
3、getname()获得cookie中的键
4、getvalue()获得cookie中的健值
httpsession:接口
1、getattribute(string name)、setattribute(string name)
2、getid()获得session的唯一标识id
3、getmaxinactiveinterval()、setmaxinactiveinterval()得到和设置session的失效时间
4、invalidate()使得session失效
5、isnew()布尔类型,判断session是否是新创建的
httpservlet:类
1、doget(httpservletrequest req,httpservletresponse resp)
当用户以get方式发出请求时,servlet调用此方法
2、dopost(httpservletrequest req,httpservletresponse resp)当用户以post方式发出请求时,servlet调用此方法
3、public void init()throws servletexception
用户第一次请求servlet的时候,容器需建立servlet对象,同时调用init()方法
4、service(servletrequest req,servletresponse res)
开辟多线程,并根据用户提交的方式,选择调用doget()还是dopost()方法
此方法不建议重写
第三篇:javaweb学习路线
转载一个好的路线!!
java分成j2me(移动应用开发),j2se(桌面应用开发),j2ee(web企业级应用),所以java并不是单机版的,只是面向对象语言。建议如果学习java体系的话可以这样去学习:*第一阶段:java基础,包括java语法,面向对象特征,常见api,集合框架;
*第二阶段:java界面编程,包括awt,事件机制,swing,这个部分也可以跳过,用的时候再看都能来及;
*第三阶段:java api:输入输出,多线程,网络编程,反射注解等,java的精华部分;*第四阶段:数据库sql基础,包括增删改查操作以及多表查询;
*第五阶段:jdbc编程:包括jdbc原理,jdbc连接库,jdbc api,虽然现在hibernate比jdbc要方便许多,但是jdbc技术仍然在使用,jdbc思想尤为重要;
*第六阶段:jdbc深入理解高级特性:包括数据库连接池,存储过程,触发器,crm思想;*第七阶段:html语言学习,包括html标签,表单标签以及css,这是web应用开发的基础;
*第八阶段:javascript脚本语言,包括javascript语法和对象,就这两个方面的内容;*第九阶段:dom编程,包括dom原理,常用的dom元素以及比较重要的dom编程思想;
*第十阶段:servlet开发,从此开始踏入java开发的重要一步,包括xml,tomcat服务器的安装使用操作,http协议简单理解,servlet api等,这个是java web开发的基础。*第十一阶段:jsp开发:jsp语法和标签,自定义标签,el,jstl库了解以及mvc三层架构的设计模式理念;
*第十二阶段:ajax开发:ajax原理,请求响应处理,ajax开发库;
*第十三阶段:轻量级框架,三大框架之一struts框架的学习,自此踏入java web开发的精华部分,包括struts体系架构,各种组件,标签库和扩展性的学习;
*第十四阶段:hibernate框架学习,三大框架之一,包括检索映射技术,多表查询技术,缓存技术以及性能方面的优化;
*第十五阶段:spring框架的学习,三大框架之一,包括了ioc,aop,datasource,事务,ssh集成以及jpa集成;
*最后呢,还有些java的技术,包括ejb3.0等,可以选择学习,与三大轻量级框架相比,ejb就是当之无愧的重量级了(不过ejb3.0减肥许多了较ejb2.x来说)。
补充:jsp部分主要包括了:
1、jsp指令和动作指令;
2、jsp内置对象(request,response,session,out,application等);
3、jstl(jsp标准标签库);
4、jsp数据库操作(jdbc);
第四篇:关于javaweb课程设计的
关于javaweb课程设计的
----在线测试系统
这次课程设计我做的是章节自测系统, 主要是服务于进行阶段性自测和练习。系统分为练习和测试两部分,每一部分又各分若干专题。系统中采用的技术主要有:jdbc数据库连接技术、和mvc三层架构利用myeclipse集成开发环境。
虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。
开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具
有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。
通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。
主要功能及规格分析
1.1 登录系统的主要功能要求
系统安全登录
管理员或普通用户功能选择
1.2 在线考试系统的主要实现功能要求
用户修改登录密码
让用户选择考试科目
从试题库中随机出题给用户
根据随机出的题做出用户的考试页面保存用户的答案
给用户的试卷评分
查询用户成绩
1.3 在线管理系统的主要功能要求
浏览整个系统中的各种用户(超级用户、普通用户)
添加管理员和普通用户
浏览并添加考试科目
浏览并添加题库
管理员修改登录密码
1.4在线阅卷系统的主要功能要求
浏览系统中考试科目
根据考试科目进行试卷批改
实现客观题的自动批改
实现主观题的人工批改
2、功能需求和用例分析
2.1系统功能需求:老师可以在网上完成一个考试从题目设计,试题录入,考试安排,考试实施,考卷批
改,分析统计;考试数据,其它数据要求储存在数据库上;考试数据的存放和处理可以实现对学生公开(学生自测成绩可自己查看)也可以实现非公开,需要一定的安全性保障。
2.1.1考生:
(1).分布式的,从考试客户端连接到考试应用服务器,在任何地方进行身份确认,从而完成考试
(2).考生可以登陆后修改自己的密码
(2).题目具有一个稳定性和随机性,试卷生成方式主要有两种(随机自动生成、固定试题、)
(3).考生提交试卷后可以得知考试结果并且知道哪里出错。
2.1.2老师:
(1).提供一个功能全面的考试管理客户端,可以进行考试的设计和安排功能
(2).对考生进行身份管理
(3).对考试进行监控
(4).保存考试结果,供老师进行分析和察看。
2.2 用例描述:
用例名称:帐户管理
参与者:超级用户
功能描述:1. 查看学生详细信息
2. 添加和删除学生用户
3. 添加和删除教师用户
用例名称:考试管理
参与者:超级用户
功能描述:1. 设置考试题型
2. 设置考试分值
3.设置考试时间和难度级别
4.设置题目显示方式(全屏显示所以题还是一屏一题)
5.设置出题方式(随机出题还是固定试题)
用例名称:题库管理
参与者:超级用户
功能描述:1.题库分类和题型管理
2.添加和删除、修改试题
3.试题成批倒入
用例名称:在线阅卷
参与者:超级用户
功能描述:1.查看学生是否交卷
2.系统对照题库答案给出考试成绩. 开始考试
用例名称:开始考试
参与者:普通用户
功能描述:提示普通用户输入参数,系统将进行随机抽题,然后进入考试界面
用例名称:修改密码
参与者:普通用户
功能描述:用户为了安全起见可以修改自己的登录密码
考试记录用例名称:考试记录
参与者:普通用户
第五篇:javaweb报告
武汉工程大学计算机科学与工程学院生产实习报告
javaweb实习报告
一、实习目的与任务
为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作的意识,了解软件开发的过程和基本流程 ,以便于帮助我们能够在大四毕业时可找到一份客观的工作,我们在大四刚开学就开始了生产实习。
这次实习的主要任务是java web软件开发,学习java开发中比较典型且经常用到的几个知识,其中包括jsp、servlet、html、jdbc等等,另外,java开发中也必须要用到数据库,因此实习中还加入了mysql数据库的学习。掌握了这些基本知识之后,就开始真正的项目开发,而且此次我们所要开发的项目是有关博客页面的项目,并完成老师指定的功能。
二、实习地点
重庆足下科技有限公司
三、实习内容和要求
我们这次实习,在校外也就是软帝公司总共是十天,开始几天基本上是每天学习一个方面的内容,大概学习了六天其中包括jsp、servlet、html、jdbc、mysql等等,剩下几天就是项目时间,做出一个博客开发的项目。大致内容如下:
一、java语言简介
java语言java是由sun微系统公司所发展出来的程序语言,它是一种面向地向的语言,java也号称是能跨平台使用的语言,这主要是因为java本身被编译之后,并不是直接产生可执行的代码,而是产生一种中间码叫作 bytecode,这种代码必需在透过 java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种java的直译器,就能解读bytecode也就能执行java编译过的程序,故与java程序是在那种平台上被编译的,就完全没有干系了。
java写出来的程序可分为两类,分别是java applet与一般的application,而application这一类就与一般的程序如c++的作用是比较类似的,是一个独立可执行的应用程序,像hotjava是一个浏览器,且就是使用java程序所发展出来的。最常见的java程序包括应用程序和applets。应用程序是单独的程序,诸如hotjava浏览器软件就是用java语言编写的。
applets类似于应用程序,但是它们不能单独运行, applets可以在支持java的浏览器中运行。applet主要是内置于html网页中,在浏览时发挥作用。
java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用java程序语言,可以进行网页开发,其中包括静态语言开发与动态网页开发,可以在网页中加入各式各样的动态效果,可以放上一段动画,加入声音,也可以建立交互式网页等。
二、html语言
html是超文本标记语言,它是一种非严格的标记语言,它是web开发的基础,也是制作网页的基础,纯html的页面是静态的。
html它由head和body两部分组成,所写的内容一般都是放在body中,其中可以添加form表单域,其中属性 action表示提交的动作,也就是提交到那个页面,可表示为action=&http://&;method属性表示提交的方法,一般为设为post;在form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan
等等,当然,有表就会有行和列,其中行用tr表示,列用td表示,行与列的属性值与table差不多。
在行与列中还可以添加一些按钮,链接等等,添加按钮是用&input&表示,添加链接则用&a href=&&&来添加,另外,还有一个比较有用的标签&div&,可以画出一个框,里面可以添加所需要的东西。
运用html我们开发了一个e-mail邮件发送系统,这个界面主要用到了七个htm文件,有主页面 main.html,其中主页面分为上部、左部和右部,分别用top.html、left.html、right.html文件来表示。另外还增加了登录页面(login.html)、注册页面(regist.html)以及书写邮件的页面(write.html),由这些html文件共同实现了e-mail的基本界面。
首先进入login登录界面,输入用户名和密码,而且用户名和密码有一定的限制,输入信息符合要求后方可进入主页面,另外,在登录界面的用户名后还有一个超链接&注册&,点击&注册&就可以进入注册的页面,注册页面上有五行,包括用户名、密码、重复密码以及上传头像,另外还有两个按钮&提交注册&和&重置&,这样即可完成注册。
登陆界面中还用到了javascript,用以给出用户名和密码的限制条件,其中有一个function方法,用到的代码如下:
&script type=&text/javascript&&
function checkinfo(){
var name=document.getelementbyid('username').
var pass=document.getelementbyid('pass').
if(name==&&){
alert(&请输入用户名!&);
if(pass==&&){
alert(&请输入密码!&);
以后若要用到限制条件,都是运用与此类似的方法,这段代码可以说是一个模板。 进入到主页面后,可以看到三个部分,左边的部分用链接列出几项,包括&写信&、&收信&、&联系人&、&百度&等,右边显示好友上传图片,顶部是背景图片。点击左边的写信,跳转到write页面,可以写邮件。右边的现实的图片可以进行查看,与空间显示的图片差不多,也是可以由小图片转换成大图片。当鼠标点击到小图标x上时,图标就亮了,鼠标
拿走,图标就暗了,
另外,我们运用html还设计了一个hao123页面,页面中用到了text文本框、超链接、行列的布置,图片的加载等等,做出来之后,整体感觉与hao123本来的页面基本差不多。
三、mysql数据库
mysql是一种小型的数据库,它与java的联系十分密切,mysql是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库,因此,网页编写大多数都是用mysql。
mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。mysql的sql指得是&结构化查询语言&,sql是用于访问数据库的最常用标准化语言。同时,mysql软件也是一种&开放源码&的软件,意味着任何人都能使用和改变软件。任何人都能从internet下载mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。mysql软件采用了gpl(gnu通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。
mysql服务器还有一套实用的特性集合,在基准测试主页上,给出了mysql服务器和其他数据库管理器的比较结果。mysql支持多种连接,包括tcp/ip、odbc和jdbc等多种数据库连接途径 ,而我们此次实习用到的是jdbc数据库连接方法,这一点在下面会讲到。
此次实习我们主要学习了如何在mysql数据库中建立表格,如何执行sql语句等等。首先,打开mysql编写框,执行语句show databases,即可查看mysql中有哪些数据库,运用create+数据库名语句可建立想要的数据库,运用use+数据库名即可进入对应的数据库。
进入数据库之后,就可以执行数据库中的增、删、查、改等sql语句了,运用create table +表名(表中所需要的元素),这样就可以建立一张表了,运用desc+表名就可以查看表,运用sql语句&select * from +表名&就可以查看表中的所有数据,运用&insert into ??&语句可以向表中添加数据;运用&update +表 set ?? where??&可以更改表中指定的某项数据;运用&delete +表 where ??&语句可以删除表中的某项数据??
四、jdbc数据库连接
java中的jdbc,jdbc是java data base connectivity的缩写,是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
连接数据库的方法有一个模板,代码如下:
public class dbmanager {
private static final string url=&jdbc:mysql://localhost:3306/test&;
private static final string user=&root&;
private static final string password=&123&;
private static connection conn=
public static connection getconn(){
if(conn==null){
//注册驱动
class.forname(&com.mysql.jdbc.driver&);
conn=drivermanager.getconnection(url,user,password);
}} catch (classnotfoundexception e) {
e.printstacktrace();
} catch (sqlexception e) {
e.printstacktrace() ;}
以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据
库时都可以直接对其进行调用。
通过jdbc我们可以连接到所用的数据库mysql,可以从数据库中提取数据,也可以将所写数据存入数据库,用jdbc连接数据库都是一个模式,基本上都是按照一个套路在写,运用jdbc以及myeclipse工具,我们也做出了一个小型的系统。
系统具有添加、查询、删除、修改、退出系统等功能,添加功能可以控制台中所写的信息添加到数据库中,查询信息则是根据id号从数据库中查询信息并将信息显示出来,增加、删除亦是如此,要做出这些功能首先都必须先连接到数据库,这就要用到jdbc技术,还要用到connection 方法,首先加载mysql数据库的驱动,然后在创建连接,连接时要提供所用计算机的ip地址和端,以及mysql数据库数据库的用户名和密码。
连接好数据库后,再根据所需要的功能编写出对应的方法,不同方法对应不同的sql语句,例如添加信息(add)中用insert语句,删除用delete语句,修改用update语句等等,然后主函数中提供对功能的选择,不同的编号对应不同的功能,并且根据所选的功能调用的方法。五、jsp
jsp是java server pages的缩写,它是由sun microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。jsp技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(javascript)和jsp标记(tag),从而形成jsp文件(*.jsp)。
web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
jsp页面通常被编译成为java servlets,这是一个标准的java扩展。页面开发人员能够访问全部的java应用环境,以利用java技术的扩展性和可移植性。当jsp页面第一次被调用时,如果它还不存在,就会被编译成为一个javaservlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应。
我们所做的学生信息管理系统也需要用到mysql数据库和jdbc技术,所做的系统同样可以添加、修改、查询和删除学生信息,不过这些功能是运用不同的页面显示,点击不同的按钮即可跳转到所需的页面,而后获得想要的信息。每个功能都建立一个jsp页面,其中主页面是index.jsp,在这个页面中有两个链接,分别转到增加信息和浏览信息页面,浏览信息页面中还包括了对信息的修改和删除。
例如,系统中浏览学生信息的页面的代码如下:
&table align=&center&&
&tr bgcolor=&pink&&
&td width=&100px& align=&center&&学号&/td&
&td width=&100px& align=&center&&姓名&/td&
&td width=&50px& align=&center&&性别&/td&
&td width=&50px& align=&center&&年龄&/td&
&td width=&160px& align=&center&&专业&/td&
&td width=&180px& align=&center&&操作&/td&
&c:foreach items=&${stus}& var=&stu&&
&td&${stu.sno}&/td&
&td&${stu.sname}&/td&
&td&${stu.sex}&/td&
&td&${stu.age}&/td&
&td&${stu.major}&/td&
&td align=&center&&
&a href=&studentdelete.jsp&&删除&/a&
&a href=&studentupdate.jsp&&修改&/a&
&/td& &/tr&&/c:foreach&
另外还用到了两个java类studao和studto,这两个类中用到jdbc技术,它们分别用以从数据库中读取数据和将数据存入到数据库中。这两个类中有很多方法,通过调用这些方法即可实现学生信息管理系统中的增、查、删、改等功能!
六、servletservlet是一种服务器端的java应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。 它担当客户请求(web浏览器或其他http客户程序)与服务器响应(http服务器上的数据库或应用程序)的中间层。 servlet是位于web 服务器内部的服务器端的java应用程序,与传统的从命令行启动的java应用程序不同,servlet由web服务器进行加载,该web服务器必须包含支持servlet的java虚拟机。
servlet生成响应内容并将其传给server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doget()或dopost()或程序员自己开发的新的方法,用的比较普遍的是dopost()方法。举例如下:
public void dopost(httpservletrequest request, httpservletresponseresponse)
throws servletexception, ioexception {
//1、获取id
string sid=request.getparameter(&id&);
int id=integer.parseint(sid);
//2、根据id查询到对应的学生信息
studao sdao=new studao();
studto stu=sdao.querystu(id);
//3、将stu传递到studentmodify.jsp页面显示
request.setattribute(&stu&,stu);
request.getrequestdispatcher(&studentmodify.jsp&).forward(request,response);
我们同样是以学习建立学生信息管理系统为例来学习servlet的,servlet与jsp差不多,最主要的差别是jsp是实现普通静态html和动态html混合编码的技术,servlet则是web页面和服务器之间的连接物,而这基本上没什么区别。
在编写学生信息管理系统的时候,只不过在昨天编写的基础上,将某些jsp文件运用servlet表示,像那些只做显示用的jsp页面不做变化,而中间有调用studao中的方法的jsp页面,它们不做显示用,而是要与数据库联系起来,像这些jsp页面就可以转换成相应的servlet,其中的代码与jsp中的几乎一样,这样处理之后,减少了页面,不过功能没有变化,更加方便了!
四、实习总结及分析
这次实习主要是学习java web开发方面的相关知识,主要的有jsp、servlet、html,另外还有jdbc,mysql数据库等等。
首先是jsp,它是java web开发的基础,需要的页面都是用jsp来建立的,它是一种
动态的网页技术,其中,可以显示动态画面以及动画效果,在其中也可以编写java代码,也可以加入html编写语言,通过form表单中的action属性可以实现页面间的跳转,点击不同的按钮,可以跳转到相应的页面,它是java web编程中必不可少的部分,java语言开发的任何项目都要用到它;
其次是servlet,它也是java web开发中必不可少的部分,servlet是位于web 服务器内部的服务器端的java应用程序,与传统的从命令行启动的java应用程序不同,servlet由web服务器进行加载,该web服务器必须包含支持servlet的java虚拟机。servlet生成响应内容并将其传给server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doget()或dopost()或程序员自己开发的新的方法,用的比较普遍的是dopost()方法。
再次,是html语言,它也是必不可少的,经常是嵌入在jsp中运用,它是一种静态页面开发技术,其中用的最多的是运用html语言建立form表单,其中有行(tr)和列(td),另外它的标签&div&也用的比较多,主要是利用它可以在页面上任意移动,而且它的大小不会改变,还可以隐藏、变透明等等,再有就是其中的javascript用的也比较多,主要是写一些function方法,用来限制一些信息;
最后,其他几个方面也非常重要,像jdbc用于应用程序和数据库的连接,没有这个方法就无法和数据库连接起来,所以十分重要;mysql数据库也是java项目开发中用到最多的一种数据库,没有数据库就无法实现信息的增、删、查、改,所以这些都是必不可少的。
五、实习体会
实习就这样在不知不觉中就结束了,这次实习我们学到了很多知识,java中的html、jsp、servlet、jdbc等等,虽然这些知识我并没有学得很精通、深邃,也只是掌握了一点皮毛而已,不过对于java我们还是有了更深刻的了解,知道了java的博大精深,此外我还学到了另外一种数据库,mysql数据库,这是一个小型数据库,与以前的sql server 有相同也有不同,同时还学会了如何运用myeclipse开发工具等等。
同时也学到了项目开发的思考角度和基本流程,提高了我们分析和解决问题的能力,锻炼了我们实际动手操作能力,为以后的工作打下了坚实的基础。
实习就快结束了,在此我要特别几位老师,,首先是带领我们实习的刘黎志老师,对我们尽心尽力,经常到实习基地监督指导我们,感谢老师对于我们的关心和照顾;其次,就是要感谢带领我们进行第一阶段学习的软帝指导老师杨涛老师,他细心的教授我们知识,对没听懂的同学一一辅导,在他的讲解下我们学到了很多基础知识;最后要感谢带领我们做项目的马文成老师,他的耐心讲解让我们感受到了做项目的乐趣,哪位同学有错误他就会一一帮助修改,真的非常感谢他们!
请阅读以下相关范文:
javaweb学习心得(本文共计13827字),完全可免费阅读或下载全文。HAOWORD好范文网haoword为全国范文类知名网站,下载或复制全文稍作修改便可使用,顺利完成写稿任务。下载全文:
上一篇: 下一篇:}

我要回帖

更多关于 javaweb学习路线 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信