J2EE編程技術實驗報告書_第1頁
J2EE編程技術實驗報告書_第2頁
J2EE編程技術實驗報告書_第3頁
J2EE編程技術實驗報告書_第4頁
J2EE編程技術實驗報告書_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、. . . . J2EE編程技術實驗報告書專業:軟件工程指導老師:羅翌 學號:0800350114:凌浩實驗一 JSP網頁設計一、實驗目的掌握J2EE JSP+Servlet+JavaBean開發模式開發JSP網頁步驟;掌握該開發模式實現用戶登錄頁面功能。二、實驗環境PC系列微機,CPU2G以上,存1G以上,Windows XP,MyEclipse6.5以上。三、實驗步驟1、創建Servlet LoginServlet實現登錄驗證編寫該Servlet實現登錄驗證并進行配置。2、創建login.jsp、admin.jsp、user.jsp這3個jsp的頁面采用的JSP+JavaBean開發模式中

2、一樣。3、調試程序是否正常運行四、實驗報告LoginServlet.java:package .servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import .dao.UserDao;import .dao.UserDaoIm

3、pl;import .model.User;public class LonginServlet extends Servlet public LonginServlet() super();public void destroy() super.destroy(); public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException public void doPost( ServletRequest request, ServletResponse

4、response)throws ServletException, IOException String a="123"User user=new User();user.setUsername(request.getParameter("username");user.setUserpassword(request.getParameter("password");user.setRole(request.getParameter("role");UserDao userdao=new UserDaoImpl()

5、;if(userdao.login(user)if(user.getRole().equals("admin")request.getRequestDispatcher("Admin.jsp").forward(request,response);elserequest.getRequestDispatcher("User.jsp").forward(request, response);elserequest.setAttribute("errormessage", "error");requ

6、est.getRequestDispatcher("login.jsp").forward(request, response);public void init() throws ServletException Login.jsp:<% page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><%String path = request.getContextPath();String

7、basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=basePath%>"> <title>My J

8、SP 'login.jsp' starting page</title> </head> <body> <center> <form action="Login" method="post"> <h3>登錄</h3> <% if(request.getAttribute("errormessage")!=null) %><label style="color:red;font-size:20px;"

9、 ><%out.write("賬號或密碼錯誤");%></label><% %> <table> <tr><td>賬號:</td><td><input type="text" name="username" size="20"/></td></tr> <tr><td>密碼:</td><td><input type="

10、password" name="password" size="20"/></td></tr> <tr><td colspan="2" align="center"> </td></tr> <tr><td colspan="2" align="center"><input type="submit" value="登錄"

11、/> <input type="reset" value="清空"/></td></tr> </table> </form> </center> </body></html><% page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><%String path = re

12、quest.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%>Admin.jsp:<!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html> <head> <base href="<%=b

13、asePath%>"> <title>My JSP 'Admin.jsp' starting page</title> </head> <body> <h3 style=color:blue>登錄成功</h3><hr/> 用戶信息:<br/> 用戶類型:ADMIN<br/>用戶賬號:<%=request.getParameter("username")%> <br/>用戶密碼:<%=request.g

14、etParameter("password")%> <br/> </body></html>五、實驗小結通過這一次實驗,我基本掌握了J2EE JSP+Servlet+JavaBean開發模式開發JSP網頁步驟;掌握該開發模式實現用戶登錄頁面功能。做完實驗,感覺對于書本上的一些知識有了客觀,清晰的認識,真正做到了把理論與實踐相結合。實驗二 JSP設計一、實驗目的掌握JSP+DAO的開發步驟;理解JSP+DAO模式的優缺點。二、實驗環境PC系列微機,CPU2G以上,存1G以上,Windows XP,MyEclipse6.5三、實驗步驟1

15、、編寫POJO User類2、編寫或使用原來的DBConnection類獲得數據庫連接3、創建數據訪問抽象層接口UserDAO4、創建數據訪問實現類UserDAOImpl5、創建登錄需要的JSP頁面頁面有:login.jsp、login_do.jsp、admin.jsp、user.jsp。流程見作業JSP-DAO,修改有關的程序、數據庫與名稱。4、 實驗報告程序源代碼如下:User.java:package .model;public class User private String username;private String userpassword;private String ro

16、le;public String getRole() return role;public void setRole(String role) this.role = role;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getUserpassword() return userpassword;public void setUserpassword(String userpassword)

17、this.userpassword = userpassword;UserDAO.java:package .dao;import .model.User;public interface UserDao boolean login(User user);UserDaoImpl.java:package .dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import .conn.DBConnection;

18、import .model.User;public class UserDaoImpl implements UserDao public boolean login(User user) Connection conn=DBConnection.getConnection();ResultSet rs=null;PreparedStatement st=null;try st=conn.prepareStatement("select * from "+user.getRole()+" where username=? and userpassword=?&qu

19、ot;);st.setString(1, user.getUsername();st.setString(2, user.getUserpassword();rs=st.executeQuery();if(rs.next()return true; catch (SQLException e) e.printStackTrace();return false;DBConnection.java:package .conn;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;p

20、ublic class DBConnection public static Connection getConnection()Connection conn=null;try Class.forName("org.gjt.mm.mysql.Driver");try conn=DriverManager.getConnection("jdbc:mysql:/localhost:3306/test","root","sa"); catch (SQLException e) e.printStackTrace();

21、catch (ClassNotFoundException e) e.printStackTrace();return conn;5、 實驗小結 通過第二次實驗,對于Servlet的工作原理和Servlet編程基本技能,我已經有了更深刻的認識,不再局限于書本上的理論知識,通過上網查找資料,我也擴充了自己的視野圍。而對于JSP工作原理JSP腳本元素、指令等,JDBC工作原理,我也初步掌握了,同時我也掌握了基于數據源訪問數據庫等技術,JSP+DAO的開發步驟;理解了JSP+DAO模式的優缺點。實驗三 Web Service編程實驗一、實驗目的掌握J2EE JSP+servlet+web servi

22、ce開發模式開發J2EE的web服務;掌握該開發模式實現用戶訪問web服務與web服務的業務邏輯功能。二、實驗環境PC系列微機,CPU2G以上,存1G以上,Windows XP,MyEclipse6.5以上。三、實驗步驟1、創建Iwebservice.java實現J2EE的web 業務邏輯的接口。編寫該Iwebservice.java實現web 業務邏輯的接口與參數描述。2、創建webserviceImpl.java實現J2EE的web 業務邏輯編寫該webserviceImpl.java實現計算邏輯并將結果寫入數據庫,返回計算結果和數據庫寫入成功標記。3、調試程序是否正常運行四、實驗報告程序

23、源代碼:Iwebservice.java:package .testservice;public interface ITestService public String example(String message);public String Sort(String str);webserviceImpl.java:public class TestServiceImpl implements ITestService public String example(String message) return message;public String Sort(String str) St

24、ring splits=str.split(" ");Integer Insplits=new Integersplits.length;for(int i=0;i<Insplits.length;i+)Insplitsi=Integer.valueOf(splitsi);Integer temp=0;temp=Insplits0;for(int i=0;i<Insplits.length;i+)for(int j=0;j<Insplits.length-i-1;j+)if(Insplitsj>Insplitsj+1)temp=Insplitsj;I

25、nsplitsj=Insplitsj+1;Insplitsj+1=temp;String result=new String();for(int i=0;i<Insplits.length;i+)result+=Insplitsi.toString()+" "Connection conn=DBConnection.getConnection();try PreparedStatement st=conn.prepareStatement("insert into webservice(sortedstr) values(?)");st.setSt

26、ring(1, result);st.executeUpdate(); catch (SQLException e) e.printStackTrace();return "fail"return "success"Sort.java:public class Sort protected String in0;public String getIn0() return in0;public void setIn0(String value) this.in0 = value;SortSPonse.Java:public class SortRespon

27、se protected String out;public String getOut() return out;public void setOut(String value) this.out = value;5、 實驗小結 通過第三次實驗,我了解了WEB服務的基本概念,對WEB服務技術的優缺點有了客觀上的理解。通過實驗課,我了解了WEB服務的基本步驟。同時也比較J2EE與.net的web服務開發的一樣點與不同點,做到橫向與縱向的比較。實驗4.J2EE與E數據庫編程一、實驗目的掌握J2EE JSP+servlet+E開發模式開發J2EE的E組件;掌握該開發模式實現用戶訪問E與E組件功能。

28、二、實驗環境PC系列微機,CPU2G以上,存1G以上,Windows XP,MyEclipse6.5以上。三、實驗步驟1、創建esession.java實現會話 E的計算邏輯功能。編寫該esession.java實現E業務邏輯功能。2、創建eentity.java實現實體E的數據模型。編寫該eentity.java實現用戶賬戶的數據模型。3、創建emessage.java實現用戶提交信息觸發事件,完成邏輯計算和實體E對象的修改。4、調試程序是否正常運行四、實驗報告網頁程序源代碼:Eentity.java:public class Eentity implements StatefulCalcu

29、latorRemote private int a = 0;private int b = 0;public int add() return a + b;public void setA(int a) this.a = a;public void setB(int b) this.b = b;public void destory() System.out.println("E StatefullCalculator 即將銷毀");public void created() System.out.println("E StatefullCalculator 已經

30、創建完畢");public void passive() System.out.println("E StatefullCalculator 準備鈍化");public void active() System.out.println("E StatefullCalculator 已經激活");public void remove() System.out.println("E StatefullCalculator 請求容器銷毀當前 Bean 實例");Eentity.java:public class StudentFa

31、cade implements StudentFacadeLocal public static final String USERNAME = "username"public static final String PASSWORD = "password"public static final String AGE = "age"PersistenceContextprivate EntityManager entityManager;public void save(Student entity) LogUtil.log(&q

32、uot;saving Student instance", Level.INFO, null);try entityManager.persist(entity);LogUtil.log("save successful", Level.INFO, null); catch (RuntimeException re) LogUtil.log("save failed", Level.SEVERE, re);throw re;public void delete(Student entity) LogUtil.log("deleting

33、 Student instance", Level.INFO, null);try entity = entityManager.getReference(Student.class, entity.getId();entityManager.remove(entity);LogUtil.log("delete successful", Level.INFO, null); catch (RuntimeException re) LogUtil.log("delete failed", Level.SEVERE, re);throw re;pu

34、blic Student update(Student entity) LogUtil.log("updating Student instance", Level.INFO, null);try Student result = entityManager.merge(entity);LogUtil.log("update successful", Level.INFO, null);return result; catch (RuntimeException re) LogUtil.log("update failed", Lev

35、el.SEVERE, re);throw re;public Student findById(Integer id) LogUtil.log("finding Student instance with id: " + id, Level.INFO,null);try Student instance = entityManager.find(Student.class, id);return instance; catch (RuntimeException re) LogUtil.log("find failed", Level.SEVERE, r

36、e);throw re;SuppressWarnings("unchecked")public List<Student> findByProperty(String propertyName,final Object value, final int. rowStartIdxAndCount) LogUtil.log("finding Student instance with property: " + propertyName+ ", value: " + value, Level.INFO, null);try f

37、inal String queryString = "select model from Student model where model."+ propertyName + "= :propertyValue"Query query = entityManager.createQuery(queryString);query.setParameter("propertyValue", value);if (rowStartIdxAndCount != null && rowStartIdxAndCount.leng

38、th > 0) int rowStartIdx = Math.max(0, rowStartIdxAndCount0);if (rowStartIdx > 0) query.setFirstResult(rowStartIdx);if (rowStartIdxAndCount.length > 1) int rowCount = Math.max(0, rowStartIdxAndCount1);if (rowCount > 0) query.setMaxResults(rowCount);return query.getResultList(); catch (Run

39、timeException re) LogUtil.log("find by property name failed", Level.SEVERE, re);throw re;public List<Student> findByUsername(Object username,int. rowStartIdxAndCount) return findByProperty(USERNAME, username, rowStartIdxAndCount);public List<Student> findByPassword(Object passw

40、ord,int. rowStartIdxAndCount) return findByProperty(PASSWORD, password, rowStartIdxAndCount);public List<Student> findByAge(Object age, int. rowStartIdxAndCount) return findByProperty(AGE, age, rowStartIdxAndCount);SuppressWarnings("unchecked")public List<Student> findAll(final

41、 int. rowStartIdxAndCount) LogUtil.log("finding all Student instances", Level.INFO, null);try final String queryString = "select model from Student model"Query query = entityManager.createQuery(queryString);if (rowStartIdxAndCount != null && rowStartIdxAndCount.length > 0) int rowStartIdx = Math.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論