JSP动态Web技术
实训报告
姓 名:学 号:班 级:指导老师:
一、实习内容: (1)、问题的提出
无论是在商业网站还是在社区中,留言板都是一种重要的功能,通过
留言板,用户可以将自己的想法、感受等发表出来以更好地进行交流。留言板的基本功能是让使用者撰写留言或者查看别人的留言。一个功能完善的留言板也有着复杂的功能,这种复杂性主要表现在留言板的管理权限和留言丰富的表现形式两个方面。本节项目介绍使用纯文本的留言,并具有添加和删除的权限。
(2)、问题分析与总体设计 1.包含模块
撰写留言模块 阅读留言模块 留言管理模块
2.MVC模式
MVC(model-view-controller,模型-视图-控制器)模式的核心思想是将整个程序代码分成既相对独立又能协同工作的3个组成部分。
a. 模型(model):业务逻辑层。实现具体的业务逻辑、状态管理的功
能。
b. 视图(view):表示层。即与用户实现交互的界面,通常实现数据的
输入和输出功能。
c. 控制器(controller):控制层。起到控制整个业务流程(flow control)
的作用,实现视图和模型部分的协同工作。
请求 浏览器 控制器 模型(JavaBean) 视图(JSP) 响应 应用程序服务器
3.数据库设计
在SQL Server 中新建数据库message,新建数据表mas,其中“留言id”字段数值为自动编码,表的结构如图所示:
(3)、项目实现(依据MVC模式)
1.模型(DB.conn、strConvert)
DB.conn代码:
package app63; import java.sql.*;
public class DBconn {
String DBDriver=\"sun.jdbc.odbc.Jdbc.OdbcDriver\"; String Connstr=\"jdbc:odbc:message\"; Connection con=null; ResultSet rs=null;
public DBconn(){ try{
Class.forName (DBDriver); }
catch(ClassNotFoundException e){
System.err.println(\"DBconn:classnotfoundexception\"); } }
public void executeInsert(String s){ int i=0;
Statement sql;
try{
//con=DriverMananger.get.Connection(Connstr,username,password); con=DriverManager.getConnection(Connstr); sql=con.createStatement(); i=sql.executeUpdate(s); }
catch(SQLException sqlexception){
System.err.println(\"executeInsert:\"+sqlexception.getMessage()); } }
public ResultSet Querysimple(String s){ rs=null;
Statement sql;
try{
con=DriverManager.getConnection(Connstr);
sql=con.createStatement(); rs=sql.executeQuery(s); }
catch(SQLException sqlexception){
System.err.println(\"executeQuery:\"+sqlexception.getMessage()); }
return rs; }
public void executeDelete(String s){ Statement sql; try {
//con=DriverManager.getConnection(Connstr); sql=con.createStatement(); sql.executeUpdate(s); }
catch(SQLException sqlexception){
System.err.println(\"executeDelete:\"+sqlexception.getMessage()); } }
public int executeUpdate (String s){ int i=0;
Statement sql; try{
con=DriverManager.getConnection(Connstr);
sql=con.createStatement();
i=sql.executeUpdate(s); }
catch(SQLException sqlexception){
System.err.println(\"executeUpdate:\"+sqlexception.getMessage()); }
return i; }
public void close(){ try{
if(rs!=null) rs.close(); if(con!=null) con.close(); }
catch(SQLException sqlexception){
System.err.println(\"close:\"+sqlexception.getMessage()); } } }
strConvert代码: package app63;
public class StrConvert{ public StrConvert(){ }
public String chStr(String str){ if(str==null){ str=\"\"; }
else{
try {
str=(new String (str.getBytes(\"ISO-8859-1\"),\"GB2312\")).trim(); }
catch (Exception e){ System .out.println(\"chStr\"); System .out.println(e.getMessage()); } } return str; } }
2.视图(message.jsp)(截图)
3.控制器(addMessage.java,delMessage.java) addMessage.java代码:
package app63;
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*;
public class addMessage extends HttpServlet {
private static final String CONTENT_TYPE=\"text/html;charset=GBK\"; //Initialize global variables
public void init() throws ServletException{
}
//Process the HTTP Get request
public void doGet(HttpServletRequest requst,HttpServletResponse response)throws
ServletException,IOException {
response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter();
out.println(\"\");
out.println(\"
StrConvert chstr=new StrConvert();
String username=(String)request.getParameter(\"name\"); String email=(String)request.getParameter(\"email\");
String topic=(String)request.getParameter(\"topic\");
String masinfo=(String)request.getParameter(\"masinfo\");
String nowtime=String.valueOf(new Date().toLocaleString()); if(username!=null||email!=null||topic!=null||) {
username=chstr.chStr(username); email=chstr.chStr(email); topic=chstr.chStr(topic);
masinfo=chstr.chStr(masinfo);
}
String sqli=\"INSERT INFO mas(留言人,留言主题,留言时间,留言人Email,留言内容)
VALUES(\"'+username+'\ int temp=-10;
con.executeInsert(Sqli);
response.sendRedirect(\"message.jsp\"); out.println(\"\"); } public void destroy(){ }
}
delMessage.java代码: package app63;
import javax.servlet.*;
import javax.servlet.http.*; import java.io.*;
import java.util.*;
public class addMessage extends HttpServlet {
private static final String CONTENT_TYPE=\"text/html;charset=GBK\"; //Initialize global variables
public void init() throws ServletException{ }
//Process the HTTP Get request
public void doGet(HttpServletRequest requst,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter(); out.println(\"\");
out.println(\"
int id=integer.parseInt((String)request.getParameter(\"id\")); String sqld=\"DELETE FROM mas WHERE 留言 id=\"+id; con.executeInsert(Sqld);
response.sendRedirect(\"message.jsp\"); out.println(\"\"); }
//Clean up resources public void destroy(){ } }
二、 实习体会:
经过一个星期的JSP程序设计实训,从开始没有太多经验的我掌握了更多的技能,收获颇多。经过这次理论实训,了解到更多的软件应用,要求掌握的只有编写代码方面的,网络、数据库、操作系统等的知识对做好项目开发很有帮助的。这让我明确了以后的学习目标,在不断学习软件开发的同时,也继续其他相关知识的深入学习。实训期间经历了许许多多,给我们带来了很多很多有实无形的东西,知识、友情以及团队开发的热情,快乐无一不包围着我们。
JSP实训在不知不觉中结束了我感觉自己还有好多理论知识要学,还有好多的技术不太懂。相信在以后的日子里我会更加努力的学习这些,从而扩展自己的知识面。
因篇幅问题不能全部显示,请点此查看更多更全内容