J2EE大作业
7苏州科技大学JAVA EE高级开发技术期末大作业报告
从设计思路、功能实现、模块架构以及核心代码等几个方面说明作业实现方案: 一.设计思路 1. login.jsp 页面是登录页面, 用户名和密码提交到 loginCl.JSP 页面, 此页面调用 UserService 的远程服务接口方法去检查数据库 Users 表中是否匹配,checkUser 的数据库是使用配置数据源 jndi 的方式查找的,这是本项目中唯一一次使用 Webservice 和 jndi 的地方。匹配后提交到 WelServlet 页 面,不匹配就返回到登录页面重新登录。 2.WelServlet 得 到 Goods 商 品 表 第 一 页 的 所 有 信 息 , 具 体 的 实 现 是 调 用 GoodsBeanBO 类 , GoodsBeanBO 通过查询 Goods 表根据传入的 pageSize,得到 pageCount 再根据 pageNow 得到本页面所有 的商品信息存到 ArrayList 中,跳转到 Wel.jsp 页面。 3.Wel.jsp 是商品展示页面,根据 ArrayList 去展示每一件商品,根据 pageCount 去分页,每一件 商品可以加入购物车,页面上还有跳转到购物车列表的界面的链接。 4.Cart.jsp 是购物车界面,同样根据 pageNow,pageSize 去查询购物车展示到界面,每一件购物 车中的商品可以加一但是加到商品所库存的最大数时商品数就不会再增长了,每件商品还可以减一减 到最后商品就被删除了,每件商品还可以删除,页面上还展示有所有商品的总价钱,页面上还有跳转 到商品信息列表的界面去继续购物。 5.对商品 表的增删改 是 CartClServlet 通过调 用 CartBeanBO 去具体 实现对 Cart 表的操 作, CartClServlet 根据 request 每次传入的 flag 参数去选择不同的操作,传入所有信息到 Wel.jsp 去展 示 6.Login 。 Jsp 页 面 中 的 注 册 链 接 跳 转 到 addUser.jsp 页 面 。 Username 和 passwd 参 数 传 到 RegisterUserServlet 调用 UserBeanCL 的 registerUser 方法去注册。 二.模块架构 1.login.jsp loginCL.jsp 调用远程 Service 去登录 WelCLServlet 默认展示第一页商品列表
JAVA J2EE大作业——学生信息管理系统
JA V A & J2EE大作业——学生信息管理系统/src/beanFind.javapackage bean;import java.io.File;import java.io.IOException;import java.util.Iterator;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Find {public String[] find(String id,String name,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();String[]str=new String[7];int j=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)boolean flagid,flagname;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");int i=0;Element element = (Element) iter.next();flagid=false;flagname=false;//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flagid=true;}elementInner = (Element) iterInner.next();if(elementInner.getText().equals(name)){flagname=true;}if(id!=null&&name!=null){if(flagid&&flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else if(name!=null&&id==null){if(flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}}}else if(id!=null&&name==null){if(flagid){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else{break;}out.print("</tr>");}str[6]=j+"";return str;}}ReadUserInfo.javapackage bean;import java.io.IOException;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.LinkedList;public class ReadUserInfo {//文件中读取出的用户信息LinkedList<String> nameList = new LinkedList<String>();LinkedList<String> passList = new LinkedList<String>();// StringTokenizer相关变量String temp;String[] st;//用来保存用户输入信息String username;String password;public String getUsername(){return username;}public void setUsername(String username){ername = username;}public String getPassword(){return password;}public void setPassword(String password){this.password = password;}public LinkedList<String> getNameList(){return nameList;}public LinkedList<String> getPassList(){return passList;}public void read(String path) throws IOException{File file = new File(path);BufferedReader br = new BufferedReader(new FileReader(file));while ((temp = br.readLine()) != null){st =temp.split(",");nameList.add(st[0]);passList.add(st[1]);}}public boolean checknp(String name,String pass){LinkedList<String> nlist = getNameList();LinkedList<String> plist = getPassList();if(!nlist.contains(name) || !plist.contains(pass)){return false;}if(nlist.indexOf(name) != plist.indexOf(pass)){return false;}return true;}}XmlPage.javapackage bean;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Iterator;import java.util.List;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class XmlPage {public void Edit(String user,String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws DocumentException, IOException {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(user))break;}if(!Id.isEmpty())element.element("id").setText(Id);if(!Name.isEmpty())element.element("name").setText(Name);if(!Age.isEmpty())element.element("age").setText(Age);if(!Gender.isEmpty())element.element("gender").setText(Gender);if(!Email.isEmpty())element.element("email").setText(Email);if(!Java.isEmpty())element.element("java").setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public boolean check(String id,String studentInfoPath) throws DocumentException{SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();boolean flag=true;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){Element element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flag=false;break;}}return flag;}public void add(String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element parent = root.addElement("student");Element id= parent.addElement("id");id.setText(Id);Element name = parent.addElement("name");name.setText(Name);Element age= parent.addElement("age");age.setText(Age);Element gender = parent.addElement("gender");gender.setText(Gender);Element email = parent.addElement("email");email.setText(Email);Element java = parent.addElement("java");java.setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public void Del(String id,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id))break;}root.remove(element);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath), out);writer.write(document);writer.close();}public void Reader(int diPage,int pageFileSize,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();// 用于记录学生编号的变量int num=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");num++;Element element = (Element) iter.next();if(num>=(diPage*pageFileSize-(pageFileSize-1))&&num<=diPage*pageFileSize){//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理for ( Iterator<?> iterInner = element.elementIterator(); iterInner.hasNext(); ){Element elementInner = (Element) iterInner.next();out.print("<th>"+elementInner.getText()+"</th>");}}out.print("</tr>");}}public int Count(String studentInfoPath) throws DocumentException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));List<?> list = document.selectNodes("/students/student");int num = list.size();return num;}}/src/filterAuthorityFilter.javapackage filter;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class AuthorityFilter implements Filter{//FilterConfig可用于访问Filter的配置信息private FilterConfig config;//实现初始化方法public void init(FilterConfig config){this.config = config;}//实现销毁方法public void destroy(){this.config = null;}//执行过滤的核心方法public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)throws IOException,ServletException{//---------下面代码用于对用户请求执行预处理---------//获取ServletContext对象,用于记录日志ServletContext context = this.config.getServletContext();long before = System.currentTimeMillis();System.out.println("开始过滤...");//获取该Filter的配置参数String encoding = config.getInitParameter("encoding");String loginPage = config.getInitParameter("loginPage");String loginServlet = config.getInitParameter("loginServlet");String addsuccess = config.getInitParameter("addsuccess");String changePage = config.getInitParameter("changePage");String changesuccess = config.getInitParameter("changesuccess");String delete = config.getInitParameter("delete");//设置request编码用的字符集request.setCharacterEncoding(encoding);HttpServletRequest requ = (HttpServletRequest)request;HttpSession session = requ.getSession(true);//输出提示信息System.out.println("Filter已经截获到用户的请求的地址:" +requ.getServletPath());System.out.println("user:" +session.getAttribute("user"));//获取客户请求的页面String requestPath = requ.getServletPath();//如果session范围的user为null,即表明没有登录//且用户请求的既不是登录页面,也不是处理登录的页面if( session.getAttribute("user") == null&& !requestPath.endsWith(loginPage)&& !requestPath.endsWith(loginServlet)){request.setAttribute("tip", "nologin");request.getRequestDispatcher("/login.jsp").forward(request, response);}/*else if(requestPath.endsWith(addsuccess)||requestPath.endsWith(changePage)||requestPath.endsWith(changesuccess)||requestPath.endsWith(delete)){request.setAttribute("tip", "stop");request.getRequestDispatcher("/studentInfoDisplay.jsp").forward(request, response);}*///"放行"请求else{chain.doFilter(request, response);}//---------下面代码用于对服务器响应执行后处理---------long after = System.currentTimeMillis();//输出提示信息System.out.println("过滤结束");//输出提示信息System.out.println("请求被定位到" + ((HttpServletRequest) request).getRequestURI() +" 所花的时间为: " + (after - before));System.out.println("Session.tip:"+session.getAttribute("tip"));System.out.println("er:"+session.getAttribute("user"));}}/src/sevrvletLoginServlet.javapackage sevrvlet;import java.io.IOException;import java.io.PrintWriter;import javax.mail.Session;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.jboss.weld.context.SessionContext;import bean.ReadUserInfo;public class LoginServlet extends HttpServlet {/*** Constructor of the object.*/public LoginServlet() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {ReadUserInfo r = new ReadUserInfo();r.read(request.getSession().getServletContext().getRealPath("")+"\\WEB-INF\\users.txt");String username = request.getParameter("username");String password = request.getParameter("password");HttpSession session = request.getSession(true);//RequestDispatcher dis = null;PrintWriter out = response.getWriter();if(!r.checknp(username,password)){out.print("<script>alert('Wrong username or password');location.href='../login.jsp';</script>");//dis = request.getRequestDispatcher("../login.jsp");}else{session.setAttribute("user", username);System.out.println("LoginServlet tip:"+session.getAttribute("tip"));//out.print("<script>alert('z!');location.href='../index.jsp';</script>");//dis = request.getRequestDispatcher("../studentInfoDisplay.jsp");out.print("<script>location.href='../studentInfoDisplay.jsp';</script>");}//dis.forward(request, response);}/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/public void init() throws ServletException {// Put your code here}}/src/tagIteratorTag.javapackage tag;import java.io.IOException;import java.util.Collection;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class IteratorTag extends SimpleTagSupport {private String collection;private String item;//collection的setter与getter函数public void setCollection(String conllection){this.collection = conllection;}public String getCollection(){return this.collection;}//item的setter与getter函数public void setItem(String item){this.item = item;}public String getItem(){return item;}@Overridepublic void doTag() throws JspException, IOException {// TODO Auto-generated method stubCollection itemlist = (Collection)getJspContext().getAttribute(collection);for(Object itemTemp : itemlist){getJspContext().setAttribute(item, itemTemp);getJspBody().invoke(null);}}/srcmytaglib.tld<?xml version="1.0"encoding="GBK"?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>mytaglib</short-name><!-- 定义该标签库的URI --><uri>/mytaglib</uri><tag><!-- 定义标签名 --><name>iterator</name><!-- 定义标签处理类 --><tag-class>tag.IteratorTag</tag-class><!-- 定义标签体支持JSP脚本 --><body-content>scriptless</body-content><!-- 配置标签属性:collection --><attribute><name>collection</name><required>true</required><fragment>true</fragment></attribute><!-- 配置标签属性:item --><attribute><name>item</name><required>true</required><fragment>true</fragment></attribute></tag></taglib>/WebRootadd.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>添加信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "addsuccess.jsp"method = "post">请输入学生信息:<br><br>姓 名:<input type= "text"name="name"style = "width = 165px;height = 22px;"value=""/><br><br>学 号:<input type= "text"name="id"style= "width = 165px;height = 22px;"value=""/><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=""/><br><br>性 别:<input type= "text"name="gender"style style = "width = 165px;height = 22px;"value=""/><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=""/><br><br>java :<input type= "text"name="java"style= "width= 165px;height = 22px;"value=""/><br><br><input type="submit"value="添加"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>addsuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>find</title></head><body><%//System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");System.out.println(request.getRealPath("/WEB-INF/students.xml")) ;if(Id.isEmpty()||Name.isEmpty()||Age.isEmpty()||Gender.isEmpty() ||Email.isEmpty()||Java.isEmpty()){application.setAttribute("lock", "false");out.print("<script>alert('学生信息未填写完整!');location.href='add.jsp';</script>");}else{if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.add(Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功添加!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='add.jsp';</script>");}}%></body></html>change.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>修改信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "changesuccess.jsp"method = "post"><!-- 并发操作安全性代码 --><%String id=session.getAttribute("id").toString(),name=session.getAttribute("name").toString(),age=session.getAttribute("age").toString(),gender=session.getAttribute("gender").toString(),email=session.getAttribute("email").toString(),java=session.getAttribute("java").toString();%>在要修改处输入修改后信息:<br><br>姓 名:<input type= "text"name="name"style= "width = 165px;height = 22px;"value=<%=name%>><br><br>学 号:<input type= "text"name="id"style = "width = 165px;height = 22px;"value=<%=id %>><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=<%=age %>><br><br>性 别:<input type= "text"name="gender"style = "width = 165px;height = 22px;"value=<%=gender%>><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=<%=email%>><br><br>java :<input type= "text"name="java"style= "width=165px;height = 22px;"value=<%=java%>><br><br><input type="submit"value="更改"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>changesuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"> <title>find</title></head><body><%System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='change.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String user=session.getAttribute("id").toString();String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");%><%if(!Id.equals(user)){if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='change.jsp';</script>");}}else{testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}%></body></html>delete.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>删除</title></head><body><%if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String id=session.getAttribute("id").toString();%><%testBean.Del(id,request.getRealPath("/WEB-INF/students.xml")); %><%application.setAttribute("lock", "false");out.print("<script>alert('成功删除!');location.href='studentInfoDisplay.jsp';</script>");%></body></html>find.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>查找</title></head><body><%-- <% if(request.getAttribute("tip") != null &&。
华师《J2EE应用框架设计与项目开发》在线作业-0001
华师《J2EE应用框架设计与项目开发》在线作业-0001
写类的目的是为了描述一类事物共有的( )
A:属性
B:数量
C:范围
D:源文件
答案:A
对于预定义<%!预定义%>的说法错误的是:(? )
A:一次可声明多个变量和方法,只要以“;”结尾就行
B:一个声明仅在一个页面中有效
C:声明的变量将作为局部变量
D:在预定义中声明的变量将在JSP页面初始化时初始化
答案:C
下面概念中,不属于面向对象方法的是()
A:对象
B:继承
C:类
D:过程调用
答案:D
如何获取一个?Cookie[]( )。
A:request.getCookies()
B:request.getCookie()
C:response.getCookies()
D:response.getCookie()
答案:A
在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:(??)
A:name
B:property
C:value
D:其他选项都选
答案:C
Servlet是用Java编写的运行在Web服务器中的程序,它可以调用服务器端的类,也可以被调用,因此它也是一个( )
A:类
B:结构
C:对象
D:变量
答案:A
泛型使用中的规则和限制是( )
A:泛类参数只能是类类型不能是简单类型。
J2EE作业步骤
<frameset cols="20%,*">
<frame src="left.jsp">
<frame src="right.jsp" name="right">
</frameset>
</frameset>
(4). 新建JSP命名为right.jsp(空白界面)
(5). 新建JSP命名为duInfo.jsp 使用Dreamweaver,打开duInfo.jsp
插入表格二行七列,输入内容:条形码,姓名,读者类型,证件类型,证件号码,电话,Email,保存。
在MyEclipse中拖入iterator,设置属性;<s:iterator id="al" value="#request.list">
3. 复制lib库包,将jar全部加入build path路径中
复制lib到src同级目录
右键单击工程名,Build path>Configure Build path…
选择Libraries,点击Add Enternal JARs…, 全选lib包,点击OK
4.添加数据库驱动,链接test,选择mircosoft-jtds驱动
Window>show view>other 输入DB,选中DB Browser
右键单击MyEclipse Derby>new
Driver template: Microsoft SQL Server(JTD)
J2EE大作业和报告基本要求(1)
J2EE大作业和报告基本要求:大作业是以J2EE主要技术的综合应用效果为考评依据,包括JSP、Servlet、JDBC、Hibernate、Struts或EJB技术。
要求学生以1-3人为单元,提交作品和文档。
小组中每个同学分别承担不同的模块任务,并以此为个人考评成绩的主要内容。
有完整调试、演示的作品将得到特殊加分。
具体要求:1.界面简洁,友好,符合实际需要;2.通过树状功能描述,进行功能分析;3.数据设计可以采用SQL Server 2000或2005,也可以采用MySQL数据库;4.针对各种配置文件,有分析和说明,不能出现光秃秃的单独配置文件;5.对系统所使用的运行环境有比较清楚的阐述;6.关键技术要求对所使用的J2EE技术有理论和应用角度的分析;7.总结要求对调试过程中的问题有测试和解决方法的说明;8.最后一周进行答辩和验收。
分数分布:(1)所提交大作业,要求使用到J2EE开发的某一主要技术,包括JSP、Servlet、JDBC、Hibernate、Struts或EJB技术。
(10分)(2)作品做到能演示(30分);(3)文档要求:⏹功能分析符合要求(10分),其他酌情次之;⏹数据库设计完整,页面测试正确(10分),其他酌情次之;⏹作品实现(包含配置和截图),有技术、有环境配置,有功能测试(20分),其他情况酌情次之;⏹关键技术阐述正确,重点突出,简明扼要(15分),其他酌情次之;⏹总结中,对开发过程中的问题阐述清楚,切中要害,提出了合理解决方案(5分),其他酌情次之。
要求缴付电子文档(PPT、作品代码和报告文档)及纸质的文档材料作为考评材料。
电子文档一律采用Office2003的Word工具编写。
参考书目:关键词可以是Eclipse、J2EE、Struts、Hibernate、EJB、JDBC等方面的书均可参考。
《J2EE平台中的开源框架应用技术》课程的课后作业及参考书
《J2EE平台中的开源框架应用技术》课程的课后作业及参考书1.1.1第一次作业(Struts方面)利用IntelliJ IDE工具(可以从下载)或者Sun NetBeans工具完成一个用户登录功能的Struts Web应用系统。
(1)要求将实现过程通过屏幕拷屏的方式放到Word文档中(形式可以参考教学讲义),以便让教师能够了解实现过程。
(2)提交时间各班的班长收集各个同学的作业的Word文档(以每个同学的学号和姓名作为文件名),打包成*.zip或者*.rar文件,在12月13日交给教师。
1.1.2第二次作业(Struts方面)(1)将第一次作业中的Struts Web应用改变为国际化效果的Web 应用程序(2)将其中的表单改变为DynaActionForm类(虚拟ActionForm技术)的表单(3)提交时间各班的班长收集各个同学的作业的Word文档(以每个同学的学号和姓名作为文件名),打包成*.zip或者*.rar文件,在12月20日交给教师。
1.1.3第三次作业(Spring方面)在您所熟悉的某个开发工具中(IntelliJ IDE、Sun NetBeans或者MyEclipse)实现一个基于Spring Ioc容器的J2SE应用程序。
提交时间各班的班长收集各个同学的作业的Word文档(以每个同学的学号和姓名作为文件名),打包成*.zip或者*.rar文件,在12月27日交给教师。
1.1.4第四次作业(Spring方面)在您所熟悉的某个开发工具中(IntelliJ IDE、Sun NetBeans)实现一个基于Spring Ioc容器的J2EE的Web应用程序。
提交时间各班的班长收集各个同学的作业的Word文档(以每个同学的学号和姓名作为文件名),打包成*.zip或者*.rar文件,在2007年1月10日交给教师。
1.1.5第五次作业(Hibernate方面)在您所熟悉的某个开发工具中(IntelliJ IDE、Sun NetBeans)实现一个基于Hibernate 框架技术的“一对多”关联映射技术的Java程序。
J2EE期末大作业
计算机科学与工程学院《J2EE应用框架设计与项目开发》课程设计项目文档项目名称网盘系统班级学号姓名目录1 概述 (1)2 需求分析 (1)2.1 系统需求概述 (1)2.2 用例分析 (1)3 系统设计 (2)3.1 技术路线 (2)3.2 系统总体架构设计 (2)3.3 数据库设计 (2)3.4 系统详细设计 (5)4 系统实现 (10)3.1 xx功能的实现 (10)3.2 xx功能的实现 (11)5 小结 (16)1 概述J2EE是Sun公司推出的一套面向企业级应用的分布式体系,与传统的应用程序编程模型有了很大的差别,J2EE体系提供了一个基于组件的思想来设计、开发、装配及部署企业级应用。
J2EE为多层分布式企业计算提供了一套完整的技术和设施,它不仅继承了Java语言的平台独立的特点,而且结合了组件技术,为现代企业多层分布式应用提供一套完整的解决方案。
此次项目名称为网盘系统,作为J2EE课程的期末项目提出,希望通过网盘系统的设计开发,了解软件文档的相关标准和编写原则,训练并掌握软件各类文档写作的技巧;由于网络硬盘综合了各种优点,是一种功能强大、操作便捷、大容量、异步的存储工具,方便用户管理使用。
该系统主要实现用户的注册、登录、密码找回功能;文件夹的增加、删除以及重命名功能;文件的上传、下载以及共享功能;2 需求分析2.1 项目名称网盘系统2.2系统需求概述2.2.1 系统运行环境a 集成开发环境:MyEclipseb Web应用服务器:Tomcat6.0c 数据库服务器:MySQL2.2.2 功能需求网盘系统以快捷方便安全的操作方式,成为了一种资料共享的捷径。
该项目实现了用户对于文件的方便的管理,用户可以通过注册获得该系统的使用权,从而登录该系统,若用户忘记密码还可找回密码。
用户登录该网盘系统后可对文件夹进行创建删除以及重命名,可进行文件的上传、下载以及共享。
(1)用户注册:第一次使用该系统的用户可点击登录界面上的注册按钮,输入用户名以及密码,回答密保问题(方便找回密码),完成注册。
J2EE试题附答案(8)
J2EE固定练习试卷1. 下面( )是正确的?A.<% String myString=request.getServerName() %>B.<%= "Hello" %>C.<%! String myString="Hello" %>D.<%= out.print("Hello") %>★标准答案:B2. 一个Java RMI应用,需要定位服务器myServer端口99上的myRemoteTest 远程对象,下面哪个RMI URL是正确的?A.rmi://99: myServer /myRemoteTestB.myServer:99/myRemoteTestC.rmi://myServer:99/myRemoteTestD.rmi:/myServer:99/myRemoteTest★标准答案:C3. <html><body><jsp:useBean id="address" class="Address Bean" /><jsp:setPropertyname="address" property="city" /><jsp:get Property name="address" property="city" /></body></html>如果用下面的URL访问,页面会输出什么结果?( )http://localhost:8080/ address.jsp?city=ChicagoA.Los AngelesB.ChicagoC.MiamiD.以上都不对★标准答案:B4. 考察以下:陈述A: RMI中, 存根(stub)是表示远程对象的客户端的代理。
.陈述B: RMI系统结构中,传输层负责建立新的连接和管理现有的连接。
17_J2EE综合练习题17
[多选题]1.在Struts 框架中, Java 程序的国际化主要通过()类实现。
A、java.util.ResourceBundleB、java.util.Local 。
C、java.util.string 。
D、java.text.MessageFormat 。
答案: ABD2. Prototype 可以帮助开发人员实现以下()目标。
A、对字符串进行各种处理。
B、使用枚举的方式访问集合对象。
C、以更简单的方式进行常见的DOM 操作。
D、监听DOM 事件并对事件进行处理。
答案: ABCD3. Hibernate 定义并支持以下()对象状态。
A、自由状态( Transient )B、持久状态( Persistent )。
C、游离状态( Detached )。
D、装载状态( loaded )。
答案: ABC4.在Hibernate 中,持久化对象具有以下()特征。
A、位于一个Session 实例的缓存中B、持久化对象和数据库中的相关记录对应。
C、Session 在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库。
D、Session 在调用delete()方法时,会将一个对象置于持久化状态。
答案: ABC5.在Hibernate 中, Session 提供了以下()检索方法,可以用来从数据库中检索对象。
A、load() 。
B、get() 。
C、find() 。
D、select()。
答案: ABC6.对于Hibernate 的检索方式,以下说法正确的有()。
A、在导航对象图检索方式中,根据已经加载的对象,导航到其他对象。
B、在OID 检索方式中,按照对象的OID 来检索对象, Session 的get() 和load() 方法提供这种功能。
C、在HQL 检索方式中,使用面向对象的HQL 查询语言。
D、在QBC 检索方式中,使用QBC API 来检索对象。
答案: ABCD7. Hibernate 数据缓存可以分为()。
【精品】网上书店j2ee大作业
上海xxxxxx JavaEE课程大作业题目基于B/S结构的网上书店的设计与实现学号2008XXXX课号130501905姓名XXXX班级2008XXX院系计信专业软件工程2010-12—27目录第一章引言1.1研究背景国外的Web商务系统应用起步较早,所以应用的领域比较广,网络销售已经在人们日常消费中占到一定比例,Web商务系统也比较成熟。
人们可以以网络这个媒体,足不出户就可以搜索、查询到自己需要的信息、购买自己需要的商品。
我国电子商务的发展起源于70年代的EDI应用,我国海关是最早引入EDI进行报关,经过几年的完善发展目前企业可以通过上网申请报关。
电子商务概念首次引入中国是在1993年,第一笔网上交易发生在1996年。
目前我国网上书店的主要类型有:由国有新华书店投资建设的网上书店.一些有实力的传统书店,都会建立自己的网站,利用网络促销,争取更多的市场份额。
它们主要依托传统的图书大厦的图书储存进行网络售书,属于新华书店上网或上网的书店。
由出版社建立的网上书店。
因为网络出版的缘故,出版社是最早触网的,我国500多家出版社中,已建立网站的有349家,占62%.较好的出版社营销网站建设的特点是:以出版社本社出版物为网站核心,突出特色,访问速度快捷,信息及时更新,内容的合理编排以及完善的检索能力,较强的交互能力。
外贸出版公司投资建设的网上书店。
这一类网上书店立足公司主营业务,主要对海外进行图书销售,销售量逐渐增加.非出版业资本投资建设的网上书店。
如卓越网。
就目前情况而言,上述几类的网络书店可以分为两大类。
一类是没有实体书店的网上书店,以卓越网为代表,还有一类是以实体书店为支撑的。
在这个背景之下,我开发了网上书店管理系统,形成了以计算机技术、网络技术、以及数据库技术等有机地结合起来的网上书店管理系统。
充分利用网络技术、数据库技术和管理技术相互结合具有的优越性,将书店管理移置到互联网环境中进行,使书店更能有效的工作,完成各种任务,如网上购书,网上看书等一切依托上网的网上购物平台。
j2ee大作业
j2ee大作业J2EE论文考核大作业学校:院系:信息技术学院专业:计算机科学与技术姓名:学号:指导老师:一.在以Java技术为基础的Web开发中,前端开发包含哪些技术,后端开发包含哪些技术,各有何特点。
详细论述。
答:前端开发:前端开发技术CSS、HTML、javascript1、CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。
CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
2、HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。
设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。
这样,你只要使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。
HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等。
HTML 的结构包括头部 (Head)、主体 (Body) 两大部分。
头部描述浏览器所需的信息,主体包含所要说明的具体内容。
3、JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
后端开发:Java语言体系比较庞大,包括多个模块。
J2ee大作业
网络信息安全课程总结201802810825 王晓磊软件工程1808班互联网爱八卦,互联网爱隐私!每个人的信息安全尤为重要,尤其是在这个科技大爆炸的时代,网络安全尤其显得重要。
那么网络安全面临那些安全威胁呢?❖网络恐怖主义▪如著名的恐怖组织“基地组织”以及近期活跃的极端恐怖组织ISIS,就非常善于利用网络,通过散布激进言论、散布谣言、散布血腥视频、攻击和破坏网络系统等方式造成社会轰动效应,增加对方(通常是国家)民众的恐惧心理,以达到破坏其社会稳定,甚至颠覆国家政权的目的。
❖网络谣言和网络政治动员▪网络谣言是指通过网络介质(例如邮箱、聊天软件、社交网站、网络论坛等)传播的没有事实依据的话语,主要涉及突发事件、公共领域、名人要员、颠覆传统、离经叛道等等内容。
▪谣言传播具有突发性且流动速度极快,因此极易会对正常的社会秩序造成不良影响。
❖网络谣言和网络政治动员▪所谓政治动员,是指在一定的社会环境与政治局势下,动员主体为实现特定的目的,利用互联网在网络虚拟空间有意图地传播针对性的信息,诱发意见倾向,获得人们的支持和认同,号召和鼓动网民在现实社会进行政治行动,从而扩大自身政治资源和政治行动能力的行为和过程。
▪当然,网络政治动员的作用是双面的,如果合理利用,也可以产生良好的正面效果。
❖网络欺凌▪个人或群体利用网络的便捷性,通过计算机或手机等电子媒介,以电子邮件、文字、图片、视频等方式对他人所进行的谩骂、嘲讽、侮辱、威胁、骚扰等人身攻击,从而造成受害者精神和心理创伤。
用信息流动过程来划分信息安全威胁种类:❖中断(Interruption)威胁:使得在用的信息系统毁坏或不能使用,即破坏可用性。
❖截获(Interception)威胁:是指一个非授权方介入系统,使得信息在传输中被丢失或泄露的攻击,它破坏了保密性。
非授权方可以是一个人、一个程序或一台计算机。
❖篡改(Modification)威胁:以非法手段窃得对信息的管理权,通过未授权的创建、修改、删除和重放等操作而使信息的完整性受到破坏。
J2EE大作业
武汉轻工大学数学与计算机学院2019-2020学年第一学期J2EE大作业指导老师: ******** 专业:信息管理与信息系统班级:信管1602班学号: ********** 姓名: *****2019年10月29 日1. 架构概述J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术。
这些技术的出现给电子商务时代的WEB应用程序的开发提供了一个非常有竞争力的选择。
怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。
完成这个步骤可以形成一个主要里程碑基线。
形成这个基线有很多好处:各种因数初步确定为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。
往往架构设计师在这个过程中要阅读大量的技术资料,听取项目组成员的建议,考虑领域专家的需求,考虑赞助商成本(包括开发成本和运行维护成本)限额。
一旦架构设计经过评审,这些因数初步地就有了在整个项目过程中的对项目起多大作用的定位。
定向技术培训一旦架构师设计的架构得到了批准形成了基线,项目开发和运行所采用的技术基本确定下来了。
众多的项目经理都会对预备项目组成员的技术功底感到担心;他们需要培训部门提供培训,但就架构师面对的技术海洋,项目经理根本就提不出明确的技术培训需求。
怎不能够对体系中所有技术都进行培训吧!有了架构里程碑基线,项目经理能确定这个项目开发会采用什么技术,这是提出培训需求应该是最精确的。
不过在实际项目开发中,技术培训可以在基线确定之前与架构设计并发进行。
角色分工有了一个好的架构蓝图,我们就能准确划分工作。
如网页设计,JSP 标签处理类设计,SERVLET 设计,session bean设计,还有各种实现。
这些任务在架构蓝图上都可以清晰地标出位置,使得项目组成员能很好地定位自己的任务。
一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆邮电大学
《J2EE》大型作业
题目简单的聊天室
二级学院计算机学院
专业名称计算机科学与技术
班级3110803
学生学号08600313
学生姓名邱云
指导教师唐晓军
成绩
填表时间:2011年 6 月
摘要:随着科学技术的快速进步和发展,人们使用网络日益频繁,无论是购物、看电影、看电视、查找资料等等。
就拿现在网络中流行的实时视频观看,就常常看见游客们通过一个聊天工具进行在线的交流,在线聊天室越来越深入人心。
1、引言
随着人们越来越多的运用网络,人们通过聊天室的方式进行沟通了解也越来越频繁,聊天室越来越深入我们的平常生活中。
聊天室适用于网上会议或闲聊的场合。
2 需求分析
随着互联网技术的不断发展和完善,人们通过网络可以更方便和快捷地进行交流和学习,聊天系统可以为大家提供一个更好的交流的平台,在这个平台上,人们可以通过文字与符号进行实时的交谈、聊天,它是一个向整个因特网开放的地方,是提供给网民一个交友与娱乐的场所,在聊天室里网民可选择自已的聊天对象,与其进行对话交流,是网民之间相互沟通、交流情感的最佳方式之一。
2.1功能需求分析
用户通过注册登陆聊天室后,可以在聊天室里面自由的聊天。
同时查看当前在线的用户。
2.2设计流程图:
聊天室的目录结构图
3详细设计
3.1使用技术
AJAX,JSP,Servlet
Ajax:在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。
Jsp:JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
Servlet:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
3.2功能模块
注册功能:用户通过注册后可以登录进聊天系统,而我使用了ajax+servlet实现用户重名验证,不同用户不能使用同一个用户名登录,如果输入了同一个用户名,系统会自动提示:
登录功能:用户注册后通过输入注册的用户名个密码可以登录进入聊天室:
聊天功能:用户进入聊天室后就可以互相进行交流、沟通了
3.3主要功能实现代码
(1)ChatService.java主要实现对用户名的验证功能
(2)ChatServlet.java 主要是设置中文流,把获取的信息传递给Ajax
(3)LoginServlet.java 主要是验证用户名和密码是否匹配以及是否为空
(4)RegServlet.java主要是验证用户是否登陆成功
(5)UserInfoList.java 主要是实现对用户的增加以及移除的,并且实现用户获取用户列表的功能
(6)UserInfoTrace.java 主要是实现了监听器的功能,可以实现用来显示在线的用户和在线人数
4结论
通过对该课程设计的制作让我对java的学习产生了巨大的喜爱,同时加深了对面向对象程序设计两大特性的理解,由于能力有限,还存在着许多不足之处。
我不够细心,常常粗枝大叶的。
这个程序是对我掌握知识熟练度的巨大挑战。
写代码过程中经常出现到处报错的情况,常常要花好长时间寻找错误,而且通常都会遇到例如某一行代码少写一个符号之类的错误。
考虑问题要全面,要有整体意识。
因为之前写的程序都是单纯的具有一项功能,各部分几件的配合不是很关键,而程序包含聊天涂鸦等花样,如果协调不好,就会顾此失彼。
在其中我更是学会到当你遇到问题是,你不要不好意思,你有许多的资源可以利用,在你的身边有你的同学。
当同学也解决不了问题时,你还可以通过网络来解决。
这个程序聊天信息的处理已基本完善,实现了用户之间的聊天信息交流监听,用户除了可以聊天还可以查看实时在线的人数。
主体页面简洁明快,提示明确,用户使用起来也将非常方便和快捷。
而程序中的许多问题我将会在接下来的学习中努力完善和改进。