课程设计
一、实验要求
1、 在导航条中添加一个后台管理菜单
2、 后台页面分成左右两个框,左边显示一个树形菜单,右边根据菜单选择显示相应的交互界面;
4、 具体界面自行设计
二、开发环境&技术
Myecplise10 MySQL5.7
jsp技术 dtree树形组件
三、系统模块构成
主要分析系统具有功能
四、数据库设计与建立
数据库设计
使用MySQL建立数据库mobileshop, 该库中有4个表 , 分别为use (用户)表、mobileClassify (手机类别) 表、mobileForm (手机基本信息) 表和orderForm (订单信息) 表。
1.user表:用户存储用户基本信息
2.mobileclassify表:用于手机类别信息
3.mobileForm表:用于手机的基本信息
4.orderForm表:用于存储订单信息
数据库连接
避免操作数据库出现中文乱码,需要使用Connection getConnection(java.lang.String)方法建立连接,连接中的代码是(用户是root,其密码是空):
Stringg uri = "jjdbc:myy qsql://127.0.0.1/mobileshop?"+
"user=root&password=&characterEncoding=gb2312";
Connection con Dri erManager getConnection( ri)
五、系统管理
建立相应的目录:
(1)ch10\WEB-INF \classes
根据servlet的包名,在classes下建立相应的子目录
比如:servlet类的包名为:myservlet.control,则在classes下建立子目录:
\myservlet\control;
比如javaBean类的包名为:mybean.data,则在则在classes下建立子目录:
\mybean\data;
六、页面管理
1.老师提供了源代码(提供的源代码默认root用户的密码为空,如果自行设置了密码需要在每一个连接数据库时的代码把密码加上)。源代码的调试结果如下
:
2.会员注册
当新用户注册时,该模块要求用户必须输入会员姓名、密码信息,否则不允许注册。用户的注册信息被存入数据库user表中。
该模块由一个jsp页面视图构成,该页面负责提交用户注册信息到servlet控制器registerServlet,并负责显示注册是否成功的信息。控制器registerServlet,负责连接数据库,并将用户提交的信息写入user表中,并将用户转发到注册页面查看注册反馈信息。
注册页面
注册成功
3.会员登录
用户可以在该模块中输入自己所注册的会员名和密码,系统将会对会员名和密码进行验证,如果输入正确,可以进入系统,否则系统将会提示用户名或者密码错误相关信息。
该模块视图部分有一个JSP页面login.jsp构成,该页面负责提交用户的登录信息到控制器并显示登录是否成功。该模块的JavaBean模型loginBean存储用户登录信息。Servlet控制器连接数据库负责验证会员名和密码是否正确,并负责让视图显示更新后的数据。
登陆界面
登陆成功界面
- 浏览手机
选择分类页面( 选择分类页面(lookMobile.jsp)
分页显示页面(byPageShow.jsp)
查看产品细节页面(showDetail.jsp)
- 查看购物车
登录用户可以通过该模块视图部分lookShoppingCar.jsp查看购物车中的物品,并选择是否删除某个货物。该模块由两个servlet控制器,deleteServlet负责删除购车车中的物品,buyServlet负责将用户购物车中物品存放到数据库中。
- 查看手机
本模块包括有两个 jj psp 页面视图 searchMobile.jsp和byPageShow.jsp页面构成,用户在searchMobile.JSP页面输入查询信息,提交给searchByConditionServlet控制器,该控制器将其结果存放在bean中,将用户重定向byPageShow.jsp页面负责显示bean中的数据。
- 查询订单
首先在导航栏添加后台链接选项
在dtree官网下载dtree菜单源码,对源码更改实现具体功能,后台页面实现功能如下:
houtai.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<head>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/JavaScript" src="dtree.js"></script>
</head>
<body>
<h2>后台管理</h2>
<p class="dtree">
<p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
d = new dTree('d');
d.add(0,-1,'后台操作菜单');
d.add(1,0,'更新用户信息');
d.add(2,0,'更新手机类别');
d.add(3,0,'更新手机信息');
d.add(4,0,'更新订单信息');
d.add(5,0,'<a href="index.jsp" target ="_top">返回主页</ a>');
d.add(6,1,'<a href="lookUser.jsp" target="right">显示</a>');
d.add(7,1,'<a href="updateUser.jsp" target="right">修改</a>');
d.add(8,1,'<a href="delUser.jsp" target="right">删除</a>');
d.add(9,2,'<a href="addmobileClsssify.jsp" target="right">增加</a>');
d.add(10,2,'<a href="lookmobileClassify.jsp" target="right">显示</a>');
d.add(11,2,'<a href="updatemobileClassify.jsp" target="right">修改</a>');
d.add(12,2,'<a href="delmobileClassify.jsp" target="right">删除</a>');
d.add(13,3,'<a href="addmobileForm.jsp" target="right">增加</a>');
d.add(14,3,'<a href="lookmobileForm.jsp" target="right">显示</a>');
d.add(15,3,'<a href="updatemobileForm.jsp" target="right">修改</a>');
d.add(16,3,'<a href="delmobileForm.jsp" target="right">删除</a>');
d.add(18,4,'<a href="lookorder.jsp" target="right">显示</a>');
d.add(19,4,'<a href="delorderForm.jsp" target="right">删除</a>');
document.write(d);
</script>
</p>
</body>
</html>
在树形菜单使用的还有dtree官网下载的dtree.js及dtree.css文件。
登录代码如下:
inputRegister.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<jsp:useBean id="userBean" class="classes.mybean.data.Register" scope="request"/>
<HEAD><%@ include file="head.txt" %></HEAD>
<title>注册页面</title>
<HTML><BODY background-color=pink><Font size=2>
<p align="center">
<FORM action="registerServlet" method="post" name=form>
<table>
用户名由字母、数字、下划线构成,*注释的项必须填写。
<tr><td>*用户名称:</td><td><Input type=text name="logname" ></td>
<td>*用户密码:</td><td><Input type=password name="password">
</td></tr>
<tr><td>*重复密码:</td><td>
<Input type=password name="again_password"></td>
<td>联系电话:</td><td><Input type=text name="phone"></td></tr>
<tr><td>邮寄地址:</td><td><Input type=text name="address"></td>
<td>真实姓名:</td><td><Input type=text name="realname"></td>
<td><Input type=submit name="g" value="提交"></td> </tr>
</table>
</Form>
</p >
<p align="center">
<p> 注册反馈:
<jsp:getProperty name="userBean" property="backNews" />
<table border=3>
<tr><td>会员名称:</td>
<td><jsp:getProperty name="userBean" property="logname"/></td>
</tr>
<tr><td>姓名:</td>
<td><jsp:getProperty name="userBean" property="realname"/></td>
</tr>
<tr><td>地址:</td>
<td><jsp:getProperty name="userBean" property="address"/></td>
</tr>
<tr><td>电话:</td>
<td><jsp:getProperty name="userBean" property="phone"/></td>
</tr>
</table></p >
</Body></HTML>
登陆验证控制器代码:
handleregister.java
package classes.myservlet.control;
import classes.mybean.data.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HandleRegister extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
try { class.forname("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){System.out.println("驱动加载出错");}
}
public String handleString(String s)
{ try{ byte bb[]=s.getBytes("iso-8859-1");
s=new String(bb);
}
catch(Exception ee){}
return s;
}
public void doPost(HttpServletRequest request,HttpServletresponse response)
throws ServletException,IOException {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=GB2312";
Connection con;
Preparedstatement sql;
Register userBean=new Register(); //创建的Javabean模型
request.setattribute("userBean",userBean);
String logname=request.getparameter("logname").trim();
String password=request.getParameter("password").trim();
String again_password=request.getParameter("again_password").trim();
String phone=request.getParameter("phone").trim();
String address=request.getParameter("address").trim();
String realname=request.getParameter("realname").trim();
if(logname==null)
logname="";
if(password==null)
password="";
if(!password.equals(again_password)) {
userBean.setBackNews("两次密码不同,注册失败,");
RequestDispatcher dispatcher=
request.getRequestDispatcher("inputRegisterMess.jsp");
dispatcher.forward(request, response);//转发
return;
}
boolean isLD=true;
for(int i=0;i<logname.length();i++){
char c=logname.charAt(i);
if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0')))
isLD=false;
}
boolean boo=logname.length()>0&&password.length()>0&&isLD;
String backNews="";
try{ con=DriverManager.getConnection(uri,"root","123456");
String insertCondition="INSERT INTO user VALUES (?,?,?,?,?)";
sql=con.preparestatement(insertCondition);
if(boo)
{ sql.setString(1,handleString(logname));
sql.setString(2,handleString(password));
sql.setString(3,handleString(phone));
sql.setString(4,handleString(address));
sql.setString(5,handleString(realname));
int m=sql.executeUpdate();
if(m!=0){
backNews="注册成功";
userBean.setBackNews(backNews);
userBean.setLogname(logname);
userBean.setPhone(handleString(phone));
userBean.setAddress(handleString(address));
userBean.setRealname(handleString(realname));
}
}
else {
backNews="信息填写不完整或名字中有非法字符";
userBean.setBackNews(backNews);
}
con.close();
}
catch(SQLException exp){
backNews="该会员名已被使用,请您更换名字"+exp;
userBean.setBackNews(backNews);
}
RequestDispatcher dispatcher=
request.getRequestDispatcher("inputRegisterMess.jsp");
dispatcher.forward(request, response);//转发
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
}
用户删除代码:
deleteUer.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body bgcolor="cyan">
<p align=center>
<form action="deleteUser"method="post">
<br/>
输入要删除的用户名:<input type=text name="username">
<input type=submit name="submit"value="提交">
</form>
</p>
</body>
</html>
删除用户控制器:
deleteUser.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deleteUser extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e) {}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
printwriter out=response.getWriter();
Connection con;
Statement sql;
response.setcontenttype("text/html;charset=GB2312");
response.setCharacterEncoding("gb2312");
String username=request.getParameter("username").trim();
if(username==null) {
username="";
}
else {
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate("DELETE FROM user WHERE logname='"+username+"'");
if(m!=0) {
out.println("删除成功");
response.sendredirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
response.sendRedirect("index.jsp");
}
out.println("</body></html>
用户查询代码:
selectUser.jsp //直接与数据库交互
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executequery("select logname from user");
out.println("<p align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</p>");
con.close();
}
catch(SQLException e){
out.println(e);
}
%>
手机分类添加源代码:
addmobileClassify.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<p align=center>
<form action="addmobileClassify",method="post">
手机类别信息添加
<table border=2 >
<tr><td>手机类别标识符:</td><td><input type="text"name="id"></tr>
<tr><td>手机类别名:</td><td><input type="text"name="name"></td></tr>
</table>
<input type=submit name="submit" value="提交">
</form>
</p>
</body>
</html>
手机分类信息查询代码:
selectmobileClassify.jsp
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from mobileClassify");
out.println("<p align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getInt(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</p>");
con.close();
}
catch(SQLException e){
out.println(e);
}
手机信息添加代码:
addmobileForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<p align=center>
<form action="addmobileForm",method="post">
手机信息添加
<table border=2 >
<tr><td>手机版本:</td><td><input type="text"name="version"></td><td>手机名:</td><td><input type="text"name="name"></td></tr>
<tr><td>手机制造商:</td><td><input type="text"name="made"></td><td>手机价格:</td><td><input type="text"name="price"></td></tr>
<tr><td>手机信息:</td><td><input type="text"name="mess"></td><td>手机图片:</td><td><input type="text"name="pic"></td></tr>
<td>手机标识号:</td><td><input type="text"name="name"></td>
</table>
<input type=submit name="submit" value="提交">
</form>
</p>
</body>
</html>
手机信息添加控制器:
addmobileForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class addmobileForm extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e) {}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
PrintWriter out=response.getWriter();
Connection con;
PreparedStatement sql;
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String version=request.getParameter("version");
String name=request.getParameter("name");
String made=request.getParameter("made");
String price=request.getParameter("price");
String mess=request.getParameter("mess");
String pic=request.getParameter("pic");
String id=request.getParameter("id");
if(version==null) {
version="";
}
if(pic==null) {
pic="";
}
else {
int ID=integer.parseInt(id);
float Price=Float.parseFloat(price);
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.prepareStatement("insert into mobileForm values(?,?,?,?,?,?,?)");
sql.setString(1,version);
sql.setString(2,name);
sql.setString(3,made);
sql.setFloat(4,Price);
sql.setString(5,mess);
sql.setString(6,pic);
sql.setInt(7,ID);
int m=sql.executeUpdate();
if(m!=0) {
out.println("添加成功");
response.sendRedirect("index.jsp");
}
else {
out.println("添加失败,或已存在该用户!");
response.sendRedirect("index.jsp");
}
out.println("</body></html>
手机信息删除代码:
delectmobileForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body bgcolor="cyan">
<p align=center>
<form action="deletemobileForm"method="post">
<br/>
<h1>删除手机信息</h1>
<input type=text name="message">
<input type="radio"name="radio" value="id"checked="checked">手机版本
<input type="radio"name="radio"value="name">手机名
<input type=submit name="submit"value="提交">
</form>
</p>
</body>
</html>
手机信息删除控制器:
deletemobileForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deletemobileForm extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e) {}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
String mess="0";
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String name=request.getParameter("radio");
String message=request.getParameter("message");
if(message==null) {
message="";
}
if(name=="id") {
mess="delete * from mobileForm where version='"+message+"'";
}
else if(name=="name") {
mess="delete * from mobileForm where name='"+message+"'";
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate(mess);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该手机信息!");
}
out.println("</body></html>
手机信息查询:
selectmobileForm.jsp
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from mobileForm");
out.println("<p align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getFloat(4)+"</td>");
out.println("<td>"+rs.getString(5)+"</td>");
out.println("<td>"+rs.getString(6)+"</td>");
out.println("<td>"+rs.getInt(7)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</p>");
con.close();
}
catch(SQLException e){
out.println(e);
}
%>
订单添加代码:
addorderForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<p align=center>
<form action="addorderForm",method="post">
订单信息添加
<table border=2 >
<tr><td>订单编号:</td><td><input type="text"name="id"></tr>
<tr><td>订单注册名:</td><td><input type="text"name="logname"></td></tr>
<tr><td>订单信息:</td><td><input type="text"name="mess"></td></tr>
<tr><td>订单价格总和:</td><td><input type="text"name="sum"></td></tr>
</table>
<input type=submit name="submit" value="提交">
</form>
</p>
</body>
</html>
订单添加控制器:
addorderForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class addorderForm extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e) {}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
PrintWriter out=response.getWriter();
Connection con;
PreparedStatement sql;
request.setCharacterEncoding("gb2312");
response.setContentType("type=text/html;charset=gb2312");
String id=request.getParameter("id").trim();
String logname=request.getParameter("logname").trim();
String mess=request.getParameter("mess").trim();
String sum=request.getParameter("sum").trim();
if(id==null) {
id="";
}
if(logname==null) {
logname="";
}
int ID=Integer.parseInt(id);
float Sum=Float.parseFloat(sum);
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.prepareStatement("insert into orderForm values(?,?,?,?)");
sql.setInt(1,ID);
sql.setString(2, logname);
sql.setString(3,mess);
sql.setFloat(4, Sum);
int m=sql.executeUpdate();
if(m!=0) {
out.println("添加成功");
}
else {
out.println("添加失败,或已存在该用户!");
}
con.close();
}
catch(SQLException e) {
out.println(""+e);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
}
订单信息删除控制器:
deleteorderForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deleteorderForm extends HttpServlet{
public void init(ServletConfig config) throws ServletException {
super.init(config);
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e) {}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
StringBuffer mess=new StringBuffer();
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String name=request.getParameter("radio").trim();
String message=request.getParameter("message").trim();
if(message==null) {
message="";
}
if(name=="id") {
int Message=Integer.parseInt(message);
mess.APPend("delete * from mobileForm where id='"+Message+"'");
}
else if(name=="name") {
mess.append("delete * from orderForm where logname='"+message+"'");
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
String str=new String(mess);
int m=sql.executeUpdate(str);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
}
out.println("</body></html>
订单查询文件:
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from orderForm");
out.println("<html><body>");
out.println("<p align=center>");
out.println("<table>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getInt(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getFloat(4)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</p>");
out.println("</body></html>
相关阅读
6月24日,微博与知名市场调研公司赛诺联合发布《2018年智能手机微报告》(以下简称“报告”),基于对2018年微博用户活跃行为
表格的设计远远没有想象的那么简单,除了纯粹的数据展示,现在的表格越来越兼顾到一些导航的功能在里面,不仅仅纵向展示数据,在横向方面
JCO简介SAP JCo(SAP Java Connector,SAP Java连接器)是SAP组件和Java应用程序之间的中间件和接口实现机制。JCo基于JNI(Java Native I
怎么恢复手机删除的照片?随着我们每一个人使用手机的时间越来越长,相应的手机里面产生的数据也越来越多,各类应用数据缓存或者是照片
如今随着智能设备井喷式发展,投影机也是慢慢的走进了千家万户。手机投屏有很多的便利,因此,手机等设备如何投屏到投影机上一时间也成