首页 技术 正文
技术 2022年11月19日
0 收藏 406 点赞 2,765 浏览 35007 个字

   NETCTOSS – 中国电信运营支持系统-网络版_V-1.0  

NETCTOSS:

  • C:China
  • T:Telecom 电信
  • O:Operation 运营
  • S:Support 支持
  • S:System 系统
  • 中国电信运营支持系统-网络版

导入jar包

  • javaee:直接导入tomcat内置jar包
  • jstl:使用maven搜jstl,结果中选择1.2
  • jdbc:使用maven搜ojdbc,结果中选择10.2.0.4.0
  • dbcp:使用meven搜commons-dbcp,结果中选择1.4  

项目目录结构

NETCTOSS – 中国电信运营支持系统-网络版_V-1.0

NETCTOSS – 中国电信运营支持系统-网络版_V-1.0

代码:

dao

package dao;import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import entity.Admin;
import util.DBUtil;public class AdminDao implements Serializable { public Admin findByCode(String code) {
Connection conn = null;
try {
conn = DBUtil.getConnection();
String sql =
"select * from admin_info_lhh "
+ "where admin_code=?";
PreparedStatement ps =
conn.prepareStatement(sql);
ps.setString(1, code);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
Admin a = new Admin();
a.setAdminId(rs.getInt("admin_id"));
a.setAdminCode(rs.getString("admin_code"));
a.setPassword(rs.getString("password"));
a.setName(rs.getString("name"));
a.setTelephone(rs.getString("telephone"));
a.setEmail(rs.getString("email"));
a.setEnrolldate(rs.getTimestamp("enrolldate"));
return a;
}
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(
"查询管理员失败", e);
} finally {
DBUtil.close(conn);
}
return null;
} public static void main(String[] args) {
AdminDao dao = new AdminDao();
Admin a = dao.findByCode("caocao");
if(a != null) {
System.out.println(a.getAdminId());
System.out.println(a.getName());
}
}}

AdminDao.java

package dao;import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;import entity.Cost;
import util.DBUtil;public class CostDao implements Serializable { public List<Cost> findAll() {
Connection conn = null;
try {
conn = DBUtil.getConnection();
String sql =
"select * from cost_lhh "
+ "order by cost_id";
Statement smt = conn.createStatement();
ResultSet rs = smt.executeQuery(sql);
List<Cost> list = new ArrayList<Cost>();
while(rs.next()) {
Cost c = new Cost();
c.setCostId(rs.getInt("cost_id"));
c.setName(rs.getString("name"));
c.setBaseDuration(rs.getInt("base_duration"));
c.setBaseCost(rs.getDouble("base_cost"));
c.setUnitCost(rs.getDouble("unit_cost"));
c.setStatus(rs.getString("status"));
c.setDescr(rs.getString("descr"));
c.setCreatime(rs.getTimestamp("creatime"));
c.setStartime(rs.getTimestamp("startime"));
c.setCostType(rs.getString("cost_type"));
list.add(c);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(
"查询资费失败",e);
} finally {
DBUtil.close(conn);
}
} public static void main(String[] args) {
CostDao dao = new CostDao();
Cost c = new Cost();
c.setName("包月");
//c.setBaseDuration(660);
c.setBaseCost(1200.0);
//c.setUnitCost(0.6);
c.setDescr("包月很爽");
c.setCostType("1");
dao.save(c);
} public void save(Cost c) {
Connection conn = null;
try {
conn = DBUtil.getConnection();
String sql =
"insert into cost_lhh "
+ "values(cost_seq_lhh.nextval,"
+ "?,?,?,?,'1',?,sysdate,null,?)";
PreparedStatement ps =
conn.prepareStatement(sql);
ps.setString(1, c.getName());
//JDBC的方法setInt()/setDouble(),
//不允许传入null,但当前业务该字段
//确实可能为null,并且数据库中该字段
//也允许是null.
//解决办法:将这样的数据当做对象处理.
ps.setObject(2, c.getBaseDuration());
ps.setObject(3, c.getBaseCost());
ps.setObject(4, c.getUnitCost());
ps.setString(5, c.getDescr());
ps.setString(6, c.getCostType());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(
"增加资费失败", e);
} finally {
DBUtil.close(conn);
}
}}

CostDao.java

 entity

package entity;import java.io.Serializable;
import java.sql.Timestamp;public class Admin implements Serializable { private Integer adminId;
private String adminCode;
private String password;
private String name;
private String telephone;
private String email;
private Timestamp enrolldate; public Integer getAdminId() {
return adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
public String getAdminCode() {
return adminCode;
}
public void setAdminCode(String adminCode) {
this.adminCode = adminCode;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Timestamp getEnrolldate() {
return enrolldate;
}
public void setEnrolldate(Timestamp enrolldate) {
this.enrolldate = enrolldate;
}}

Admin.java

package entity;import java.io.Serializable;
import java.sql.Timestamp;public class Cost implements Serializable { private Integer costId;
private String name;
//基本时长
private Integer baseDuration;
//基本费用
private Double baseCost;
//单位费用
private Double unitCost;
//状态:0-开通;1-暂停;
private String status;
//描述
private String descr;
//创建时间
private Timestamp creatime;
//开通时间
private Timestamp startime;
//资费类型:1-包月;2-套餐;3-计时;
private String costType; public Integer getCostId() {
return costId;
}
public void setCostId(Integer costId) {
this.costId = costId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getBaseDuration() {
return baseDuration;
}
public void setBaseDuration(Integer baseDuration) {
this.baseDuration = baseDuration;
}
public Double getBaseCost() {
return baseCost;
}
public void setBaseCost(Double baseCost) {
this.baseCost = baseCost;
}
public Double getUnitCost() {
return unitCost;
}
public void setUnitCost(Double unitCost) {
this.unitCost = unitCost;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public Timestamp getCreatime() {
return creatime;
}
public void setCreatime(Timestamp creatime) {
this.creatime = creatime;
}
public Timestamp getStartime() {
return startime;
}
public void setStartime(Timestamp startime) {
this.startime = startime;
}
public String getCostType() {
return costType;
}
public void setCostType(String costType) {
this.costType = costType;
}}

Cost.java

util

package util;import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;import org.apache.commons.dbcp.BasicDataSource;/**
* 1.DBUtil是DBTool的升级版
* 2.采用了连接池来管理连接
*/
public class DBUtil { //DBCP连接池提供的实现类
private static BasicDataSource ds; static {
Properties p = new Properties();
try {
//1.读取参数
p.load(DBUtil.class.getClassLoader()
.getResourceAsStream("db.properties"));
String driver = p.getProperty("driver");
String url = p.getProperty("url");
String user = p.getProperty("user");
String pwd = p.getProperty("pwd");
String initSize = p.getProperty("initSize");
String maxSize = p.getProperty("maxSize");
//2.创建连接池(1次)
ds = new BasicDataSource();
//3.向连接池设置参数
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(user);
ds.setPassword(pwd);
ds.setInitialSize(new Integer(initSize));
ds.setMaxActive(new Integer(maxSize));
} catch (IOException e) {
//异常的处理原则:
//1.记录日志(Log4j)
e.printStackTrace();
//2.能解决就解决(看开发规范)
//3.解决不了向上抛给调用者
//具体抛出哪种类型的异常看开发规范
throw new RuntimeException(
"加载配置文件失败", e);
}
} public static Connection getConnection()
throws SQLException {
return ds.getConnection();
} /**
* 1.目前我们使用连接都是连接池创建的
* 2.连接池重写了连接对象内部的close()
* 3.目前close()内部的逻辑是归还:
* - 清除连接对象内部包含的所有数据
* - 将连接对象状态设置为空闲态
*/
public static void close(Connection conn) {
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(
"关闭连接失败", e);
}
}
} public static void main(String[] args)
throws SQLException {
Connection conn =
DBUtil.getConnection();
System.out.println(conn);
DBUtil.close(conn);
}}

DBUtil.java

web

package web;import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dao.AdminDao;
import dao.CostDao;
import entity.Admin;
import entity.Cost;public class MainServlet extends HttpServlet { @Override
protected void service(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
//获取访问路径
String path = req.getServletPath();
//根据规范(看图)处理此路径
if("/findCost.do".equals(path)) {
//查询资费
findCost(req,res);
} else if("/toAddCost.do".equals(path)) {
//打开增加资费页面
toAddCost(req,res);
} else if("/addCost.do".equals(path)) {
//增加资费
addCost(req,res);
} else if("/toLogin.do".equals(path)) {
//打开登录页面
toLogin(req,res);
} else if("/toIndex.do".equals(path)) {
//打开主页
toIndex(req,res);
} else if("/login.do".equals(path)) {
//登录检查
login(req,res);
} else {
throw new RuntimeException("查无此页");
}
} protected void login(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
//接收表单数据
String adminCode =
req.getParameter("adminCode");
String password =
req.getParameter("password");
//检查账号密码
AdminDao dao = new AdminDao();
Admin a = dao.findByCode(adminCode);
if(a == null) {
//账号错误
req.setAttribute("error", "账号错误");
req.getRequestDispatcher(
"WEB-INF/main/login.jsp")
.forward(req, res);
} else if(!a.getPassword().equals(password)) {
//密码错误
req.setAttribute("error", "密码错误");
req.getRequestDispatcher(
"WEB-INF/main/login.jsp")
.forward(req, res);
} else {
//检查通过
//重定向到主页
res.sendRedirect("toIndex.do");
}
} protected void toLogin(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
req.getRequestDispatcher(
"WEB-INF/main/login.jsp")
.forward(req, res);
} protected void toIndex(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
req.getRequestDispatcher(
"WEB-INF/main/index.jsp")
.forward(req, res);
} protected void addCost(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
//接收表单数据
String name = req.getParameter("name");
String baseDuration =
req.getParameter("baseDuration");
String baseCost =
req.getParameter("baseCost");
String unitCost =
req.getParameter("unitCost");
String descr = req.getParameter("descr");
String costType= req.getParameter("costType");
//保存这些数据
Cost c = new Cost();
c.setName(name);
if(baseDuration != null
&& !baseDuration.equals("")) {
c.setBaseDuration(
new Integer(baseDuration));
}
if(baseCost != null
&& !baseCost.equals("")) {
c.setBaseCost(
new Double(baseCost));
}
if(unitCost != null
&& !unitCost.equals("")) {
c.setUnitCost(
new Double(unitCost));
}
c.setDescr(descr);
c.setCostType(costType);
new CostDao().save(c);
//重定向到查询资费
//当前:/netctoss/addCost.do
//目标:/netctoss/findCost.do
res.sendRedirect("findCost.do");
} protected void toAddCost(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
//转发
//当前:/netctoss/toAddCost.do
//目标:/netctoss/WEB-INF/cost/add.jsp
req.getRequestDispatcher(
"WEB-INF/cost/add.jsp")
.forward(req, res);
} protected void findCost(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
//查询所有的资费
CostDao dao = new CostDao();
List<Cost> list = dao.findAll();
//转发
req.setAttribute("costs", list);
//当前:/netctoss/findCost.do
//目标:/netctoss/WEB-INF/cost/find.jsp
req.getRequestDispatcher(
"WEB-INF/cost/find.jsp")
.forward(req, res);
}}

MainServlet.java

src/main/resource

# db connection parameters
# key=value
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.201.227:1521:orcl
user=openlab
pwd=open123
# datasource parameters
initSize=1
maxSize=1

db.properties

src/main/webapp/styles/

/* 全局样式 */
body
{
background-image: url(../images/body_bg.png);
background-color: #0063a0;
}/* 页头部分:header */
#header
{
background: url(../images/top_bg.png) no-repeat;
}
#header a
{
color: #fff;
text-decoration: none;
}/* 导航部分:navi */
#navi
{
background: url(../images/navigation.png) repeat-x;
}
.index_on
{
background: url(../images/index_on.png) no-repeat;
}
.index_off
{
background: url(../images/index_out.png) no-repeat;
}
.role_on
{
background: url(../images/role_on.png) no-repeat;
}
.role_off
{
background: url(../images/role_out.png) no-repeat;
}
.admin_on
{
background: url(../images/admin_on.png) no-repeat;
}
.admin_off
{
background: url(../images/admin_out.png) no-repeat;
}
.fee_on
{
background: url(../images/fee_on.png) no-repeat;
}
.fee_off
{
background: url(../images/fee_out.png) no-repeat;
}
.account_on
{
background: url(../images/account_on.png) no-repeat;
}
.account_off
{
background: url(../images/account_out.png) no-repeat;
}
.service_on
{
background: url(../images/service_on.png) no-repeat;
}
.service_off
{
background: url(../images/service_out.png) no-repeat;
}
.bill_on
{
background: url(../images/bill_on.png) no-repeat;
}
.bill_off
{
background: url(../images/bill_out.png) no-repeat;
}
.report_on
{
background: url(../images/report_on.png) no-repeat;
}
.report_off
{
background: url(../images/report_out.png) no-repeat;
}
.information_on
{
background: url(../images/information_on.png) no-repeat;
}
.information_off
{
background: url(../images/information_out.png) no-repeat;
}
.password_on
{
background: url(../images/password_on.png) no-repeat;
}
.password_off
{
background: url(../images/password_out.png) no-repeat;
}/* 正文区域:main */
#main
{
background: #e8f3f8;
border:5px solid #8ac1db;
}/* 正文:表格部分 */
#datalist
{
background-color:#fff;
}
#datalist td
{
border: #CCC solid 1px;
}
#datalist tr:hover
{
background-color:#f7f9fd;
}
#datalist th
{
background: #fbedce;
border: #CCC solid 1px;
}/* 表格中显示详细消息 */
div.detail_info
{
background-color: #fbf0db;
border: 1px solid #ff9000;
color: #000;
}/* 正文:表单部分(div实现方式) */
span.required
{
color:Red;
/*border:1px solid red;*/
}
/*div.validate_msg_long,div.validate_msg_medium,div.validate_msg_short,div.validate_msg_tiny*/
div.error_msg
{
color:Red;
background-image:url("../images/wrong.gif") ;
background-repeat:no-repeat;
background-position:left center;
border:1px solid red;
}
p.hide
{
border-bottom:1px solid red;
}
#divPwds
{
border-top:1px dotted #a1c7d9;
border-bottom:1px dotted #a1c7d9;
background-color:#fafeff;
}
#optionalInfo
{
background-color:#f4f4f4;
border:1px solid #b4b4b4;
}/* 保存操作后的提示消息 */
div.save_success
{
background-color: #fbf0db;
border: 1px solid #ff9000;
color: #af6606;
background-image: url(../images/ok.png);
background-repeat: no-repeat;
background-position:10px center;
}
div.save_fail
{
background-color: #fbf0db;
border: 1px solid #ff9000;
color: #F00;
background-image: url(../images/fail.png);
background-repeat: no-repeat;
background-position:10px center;
}/* 删除操作后的提示消息 */
div.operate_success
{
background-color: #fdecec;
border: 1px solid #f57676;
color: #af6606;
background-image: url(../images/ok.png);
background-repeat: no-repeat;
background-position:10px center;
}
div.operate_fail
{
background-color: #fdecec;
border: 1px solid #f57676;
color: #f00;
background-image: url(../images/warning.png);
background-repeat: no-repeat;
background-position:10px center;
}/* 正文:分页功能区 */
#pages a
{
color: #000;
}
#pages a:hover
{
background: #cddde4;
border: #97b9c9 solid 1px;
color: #067db5;
}
#pages a.current_page
{
background: #FFF;
border: #89bdd8 solid 1px;
color: #067db5;
}/* 页脚部分:footer */
#footer
{
color: #FFF;
}/* 表单上的元素:控件 */
input,select
{
border:1px solid silver;
}
input.readonly,textarea.readonly,span.readonly
{
background-color:#f6f6f6;
}
input:focus,select:focus
{
border-left:1px solid gray;
border-top:1px solid gray;
}
input.btn_search,input.btn_search:hover,input.btn_search:active
{
background: url(../images/search.png) no-repeat;
color: #0a97c9;
border:;
}
input.btn_search_large,input.btn_search_large:hover,input.btn_search_large:active
{
background: url(../images/search_large.png) no-repeat;
color: #0a97c9;
border:;
}
input.btn_search:hover,input.btn_search_large:hover
{
color: #0a97ff;
}
input.btn_add,input.btn_add:hover
{
background: url(../images/btn_bg.png) no-repeat left top;
color: #fff;
border:;
}
input.btn_modify,input.btn_modify:hover
{
background: url(../images/modification.png) no-repeat left center;
color: #000;
border:;
}
input.btn_delete,input.btn_delete:hover
{
background: url(../images/delete.png) no-repeat left center;
color: #000;
border:;
}
input.btn_start,input.btn_start:hover
{
background: url(../images/start.png) no-repeat left center;
color: #000;
border:;
}
input.btn_pause,input.btn_pause:hover
{
background: url(../images/pause.png) no-repeat left center;
color: #000;
border:;
}
input.btn_save
{
background: url(../images/form_btn.png) no-repeat;
color: #FFF;
border:;
}
input.btn_save:hover
{
background: url(../images/form_btn_on.png) no-repeat;
}
input.sort_asc
{
background: url(../images/up.png) no-repeat;
color: #FFF;
}
input.sort_desc
{
background: url(../images/down.png) no-repeat;
color: #FFF;
}
input.sort_asc,input.sort_desc,input.sort_asc:hover,input.sort_desc:hover
{
border:;
}/* 主页 */
body.index
{
background-color: #00629f;
background-image: url(../images/index_bg.jpg);
background-position: center top;
background-repeat: no-repeat;
}#index_navi
{
background: url(../images/index_navi_bg.png) repeat-x;
}
/* 登录页面 */
body.login
{
background-color: #00629f;
background-image: url(../images/login_bg.jpg);
background-position: center top;
background-repeat: no-repeat;
}
div.login_box
{
background: url(../images/login_box.png) no-repeat;
}
div.login_box table tr td
{
color: #FFF;
}
/* 错误页面 */
body.error_page
{
background-color: #00629f;
background-image: url(../images/error.png);
background-position: center top;
background-repeat: no-repeat;
}
body.error_power_page
{
background-color: #00629f;
background-image: url(../images/error_power.png);
background-position: center 40%;
background-repeat: no-repeat;
}
#error
{
color: #FFF;
}
#error span,#error a
{
color:Yellow;
}
#error a:hover
{
color:#FFF;
}
/* 报表页面 */
#report_main
{
background-color:#8ac1db;
}
a.tab_on{
background:url(../images/tab_on.png) no-repeat;
color:#006e98;
}
a.tab_out{
background:url(../images/tab_out.png) no-repeat;
color:#fff;
}

global_color.css

/* 全局样式 */
body, p, div, ul, ol, li, dl, dd, dt, h1, h2, h3, h4, h5, h6, form, input, select, label, table, tr, td, th, thead, tbody, tfoot
{
margin: 0px auto;
padding: 0px;
border:;
}
ul, ol
{
list-style: none;
}
body
{
font-size: 12px;
font-family: Tahoma,Geneva,sans-serif;
background-position: top;
background-repeat: repeat-x;
}
table
{
border-collapse: collapse;
border-spacing: 0px;
width: 910px;
border: 0px;
text-align: left;
}
a
{
text-decoration: none;
}
input, select
{
height: 30px;
line-height: 27px;
padding-left: 3px;
}
textarea
{
font-size: 12px;
font-family: Tahoma,Geneva,sans-serif;
}
.width50
{
width: 50px;
}
.width70
{
width: 70px;
}
.width80
{
width: 90px;
}
.width100
{
width: 100px;
}
.width110
{
width:110px;
}
.width150
{
width: 150px;
}
.width180
{
width: 180px;
}
.width200
{
width: 200px;
}
.width300
{
width: 300px;
}
.width350
{
width: 350px;
}
.width400
{
width: 400px;
}
.width600
{
width: 600px;
}
.height70
{
height: 70px;
}
.hide
{
display: none;
}
.show
{
display: block;
}/*清除浮动*/
.clearfix
{
clear: both;
}/*浮动对象*/
.left
{
float: left;
display: inline;
}
.right
{
float: right;
display: inline;
}
/*布局*/
#header, #menu, #footer
{
width: 960px;
margin: 0px auto;
}/*页头部分:header*/
#header
{
text-align: right;
height: 61px;
}
#header a
{
margin-right: 50px;
line-height: 61px;
font-weight: bold;
}/*导航部分:navi*/
#navi
{
width: 100%;
height: 91px;
overflow: hidden;
}
#menu
{
overflow: hidden;
margin-top: 3px;
}
#navi li
{
float: left;
padding: 0 14px;
}
#navi a
{
display: block;
width: 68px;
height: 77px;
overflow: hidden;
float: left;
}/*正文区域:main*/
#main
{
min-height: 410px;
width: 950px;
padding: 5px;
margin-top: 5px;
max-height: 450px;
overflow-x: hidden;
overflow-y: auto;
position: relative;
}
form.main_form
{
width: 800px;
margin: 15px auto;
}/*正文:查询条件部分*/
div.search_add
{
width: 910px;
height: 30px;
text-align: right;
margin-top: 3px;
}
div.search_add div
{
float: left;
margin-right: 18px;
line-height: 23px;
}
div.search_add span
{
margin-left: 5px;
}/*正文:数据表格部分*/
#data
{
min-height: 330px;
}
#datalist
{
margin-top: 5px;
text-align: center;
width:100%;
}
#datalist td
{
height: 32px;
line-height: 32px;
}
#datalist th
{
font-weight: bold;
text-align: center;
height: 35px;
line-height: 35px;
}
td.td_modi,th.td_modi
{
width: 130px;
text-align: center;
}
th.th_select_all
{
width: 70px;
}
#datalist th input
{
height: 35px;
line-height: 35px;
float: left;
margin-left: 8px;
border-width: 0px;
}
#datalist th span
{
display: block;
height: 35px;
line-height: 35px;
float: left;
margin-left: 5px;
}
#datalist tr input
{
border-width: 0px;
}/* 表格中的显示详细 */
a.summary
{
cursor: default;
color: gray;
font-weight: bold;
display: block;
width: 100%;
line-height: 100%;
}
div.detail_info
{
position: absolute;
z-index:;
min-width: 150px;
min-height: 40px;
display: none;
padding: 3px;
overflow: visible;
text-align: left;
}/* 正文:表单部分(div实现方式) */
div.text_info
{
width: 200px;
text-align: right;
float: left;
height: 40px;
margin-top: 5px;/**/
/*border:1px solid black;*/
margin-bottom:5px;
}
div.text_info span
{
display: block;
}
div.input_info
{
width: 580px;
text-align: left;
margin-left: 10px;
float: left;
height: 40px;
}
div.input_info span.info
{
display:inline-block;
width:50px;
}
div.fee_type input, div.fee_type label
{
border-width: 0px;
display: block;
height: 30px;
line-height: 27px;
float: left;
margin-left: 5px;
}
div.fee_type label
{
margin-left: 3px;
margin-right: 5px;
}
div.change_pwd
{
clear: both;
width: 410px;
float: right;
}
div.change_pwd input, div.change_pwd label
{
display: block;
height: 30px;
line-height: 27px;
float: left;
margin-left: 5px;
border-width: 0px;
}
#optionalInfo
{
clear: both;
height: 390px;
padding-top: 10px;
}
#divPwds
{
display: none;
clear: both;
height: 130px;
padding-top: 10px;
}div.validate_msg_long, div.validate_msg_medium, div.validate_msg_short, div.validate_msg_tiny
{
/*height: 28px;*/
line-height: 28px;
float: right;
overflow: hidden;
text-align: left;
padding-left:5px;
}
div.error_msg
{
padding-left:17px;
}
div.validate_msg_long
{
width: 390px;
}
div.validate_msg_medium
{
width: 340px;
}
div.validate_msg_short
{
width: 240px;
line-height: 28px;
}
div.validate_msg_tiny
{
width: 190px;
line-height: 28px;
}
div.input_info_scroll
{
width: 360px;
text-align: left;
float: left;
height: 87px;
overflow-y: scroll;
overflow-x: auto;
border: 1px solid silver;
}
div.input_info_scroll li
{
float: left;
line-height: 22px;
height: 22px;
margin: 2px 2px 5px 5px;
width: 106px;
}
div.input_info_scroll li span
{
display: block;
float: left;
line-height: 22px;
height: 22px;
}
div.input_info_scroll li input
{
height: 22px;
line-height: 22px;
margin-right: 3px;
float: left;
border-width: 0px;
}
div.input_info_high
{
width: 580px;
text-align: left;
margin-left: 10px;
float: left;
height: 90px;
margin-bottom: 10px;
}
div.button_info
{
text-align: left;
width: 380px;
/*border:1px solid blue;*/
}
span.required
{
font-size:10pt;
}/* 保存操作后的提示消息 */
#save_result_info
{
width: 600px;
line-height: 50px;
padding-left: 40px;
font-size: 14px;
display: none;
font-weight:bold;
}/* 删除操作后的提示消息 */
#operate_result_info
{
width: 400px;
line-height: 70px;
padding-left: 40px;
font-size: 16px;
display: none;
position: absolute;
z-index:;
top: 90px;
left: 30%;
}
#operate_result_info img
{
float: right;
margin-right: 10px;
margin-top: 10px;
cursor: pointer;
}/* 正文:分页功能区 */
#pages
{
width: 940px;
text-align: center;
height: 28px;
line-height: 28px;
margin-top: 5px;
}
#pages a, #pages a.current_page:hover
{
padding: 5px 10px;
}
#pages a:hover
{
padding: 5px 9px;
}/*页脚部分:footer*/
#footer
{
width: 960px;
height: 50px;
padding: 5px 0;
line-height: 25px;
text-align: center;
}/* 表单上的元素:控件 */
span.readonly
{
line-height: 28px;
display: inline-block;
text-align: left;
padding-left: 3px;
}
input.text_search, select.select_search
{
height: 23px;
line-height: 23px;
margin-left: 0px;
}
input.btn_search
{
height: 26px;
line-height: 26px;
width: 74px;
padding-left: 13px;
margin-left: 3px;
}
input.btn_search_large
{
height: 26px;
line-height: 26px;
width: 110px;
padding-left: 18px;
margin-left: 3px;
}
input.btn_search:hover,input.btn_search_large:hover
{
font-weight: bold;
}
input.btn_add
{
height: 26px;
line-height: 26px;
width: 71px;
text-align: center;
overflow: hidden;
padding-left: 0px;
}
input.btn_modify, input.btn_delete, input.btn_start, input.btn_pause
{
margin-left: 3px;
width: 55px;
cursor: pointer;
}
input.btn_save
{
width: 100px;
height: 36px;
line-height: 26px;
font-size: 20px;
font-family: "黑体";
text-align: center;
margin-right: 5px;
}
input.sort_asc, input.sort_desc
{
width: 71px;
height: 26px;
line-height: 26px;
font-family: "黑体";
text-align: center;
padding-right: 10px;
}/* 主页 */
#index_navi
{
width: 100%;
height: 91px;
position: absolute;
bottom:;
}
#index_navi li
{
margin-top: 10px;
float: left;
padding: 0 14px;
}
#index_navi a
{
display: block;
width: 68px;
height: 77px;
overflow: hidden;
float: left;
}/* 登录页面 */
div.login_box
{
width: 450px;
height: 200px;
padding-top: 70px;
margin-top: 150px;
font-size: 12pt;
font-weight: bold;
}
div.login_box table
{
width:98%;
}
div.login_box table tr td
{
padding-left: 5px;
height: 44px;
}
td.login_info
{
text-align: right;
width: 150px;
padding-right: 5px;
}
td.login_error_info
{
width:130px;
}
td.login_button
{
text-align: left;
padding-top: 5px;
}
td.login_button img
{
border-width: 0px;
}/* 错误页面 */
#error
{
width: 960px;
text-align: center;
margin-top: 400px;
}
#error a:hover
{
text-decoration: underline;
cursor: pointer;
}
/* 报表页面 */
#report_main
{
min-height: 420px;
width: 960px;
padding: 5px;
margin-top: 5px;
max-height: 450px;
overflow-x: hidden;
overflow-y: auto;
}
div.report_box
{
width:950px;
min-height:365px;
background-color:#e8f3f8;
padding:5px;
max-height: 395px;
}
div.tabs
{
width:940px;
height:35px;
overflow:hidden;
padding-left:10px;
margin-top:10px;
}
div.tabs ul li
{
float:left;
padding:0 5px;
}
div.tabs ul li a
{
display:block;
width:101px;
height:36px;
overflow:hidden;
line-height:36px;
text-align:center;
}
#report_data
{
min-height: 320px;
}

global.css

src/main/webapp/WEB-INF/cost/

<%@page pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>达内-NetCTOSS</title>
<link type="text/css" rel="stylesheet" media="all" href="styles/global.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<link type="text/css" rel="stylesheet" media="all" href="styles/global_color.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<script language="javascript" type="text/javascript">
//保存结果的提示
function showResult() {
showResultDiv(true);
window.setTimeout("showResultDiv(false);", 3000);
}
function showResultDiv(flag) {
var divResult = document.getElementById("save_result_info");
if (flag)
divResult.style.display = "block";
else
divResult.style.display = "none";
} //切换资费类型
function feeTypeChange(type) {
var inputArray = document.getElementById("main").getElementsByTagName("input");
if (type == 1) {
inputArray[4].readOnly = true;
inputArray[4].value = "";
inputArray[4].className += " readonly";
inputArray[5].readOnly = false;
inputArray[5].className = "width100";
inputArray[6].readOnly = true;
inputArray[6].className += " readonly";
inputArray[6].value = "";
}
else if (type == 2) {
inputArray[4].readOnly = false;
inputArray[4].className = "width100";
inputArray[5].readOnly = false;
inputArray[5].className = "width100";
inputArray[6].readOnly = false;
inputArray[6].className = "width100";
}
else if (type == 3) {
inputArray[4].readOnly = true;
inputArray[4].value = "";
inputArray[4].className += " readonly";
inputArray[5].readOnly = true;
inputArray[5].value = "";
inputArray[5].className += " readonly";
inputArray[6].readOnly = false;
inputArray[6].className = "width100";
}
}
</script>
</head>
<body>
<!--Logo区域开始-->
<div id="header">
<img src="data:images/logo.png" alt="logo" class="left"/>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[退出]</a>
</div>
<!--Logo区域结束-->
<!--导航区域开始-->
<div id="navi">
<ul id="menu">
<li><a href="../index.html" rel="external nofollow" rel="external nofollow" class="index_off"></a></li>
<li><a href="../role/role_list.html" rel="external nofollow" rel="external nofollow" class="role_off"></a></li>
<li><a href="../admin/admin_list.html" rel="external nofollow" rel="external nofollow" class="admin_off"></a></li>
<li><a href="../fee/fee_list.html" rel="external nofollow" rel="external nofollow" class="fee_off"></a></li>
<li><a href="../account/account_list.html" rel="external nofollow" rel="external nofollow" class="account_off"></a></li>
<li><a href="../service/service_list.html" rel="external nofollow" rel="external nofollow" class="service_off"></a></li>
<li><a href="../bill/bill_list.html" rel="external nofollow" rel="external nofollow" class="bill_off"></a></li>
<li><a href="../report/report_list.html" rel="external nofollow" rel="external nofollow" class="report_off"></a></li>
<li><a href="../user/user_info.html" rel="external nofollow" rel="external nofollow" class="information_off"></a></li>
<li><a href="../user/user_modi_pwd.html" rel="external nofollow" rel="external nofollow" class="password_off"></a></li>
</ul>
</div>
<!--导航区域结束-->
<!--主要区域开始-->
<div id="main">
<div id="save_result_info" class="save_fail">保存失败,资费名称重复!</div>
<!--
当前:/netctoss/toAddCost.do
目标:/netctoss/addCost.do
-->
<form action="addCost.do" method="post" class="main_form">
<div class="text_info clearfix"><span>资费名称:</span></div>
<div class="input_info">
<input type="text" class="width300" name="name"/>
<span class="required">*</span>
<div class="validate_msg_short">50长度的字母、数字、汉字和下划线的组合</div>
</div>
<div class="text_info clearfix"><span>资费类型:</span></div>
<div class="input_info fee_type">
<input type="radio" name="costType" value="1" id="monthly" onclick="feeTypeChange(1);" />
<label for="monthly">包月</label>
<input type="radio" name="costType" value="2" checked="checked" id="package" onclick="feeTypeChange(2);" />
<label for="package">套餐</label>
<input type="radio" name="costType" value="3" id="timeBased" onclick="feeTypeChange(3);" />
<label for="timeBased">计时</label>
</div>
<div class="text_info clearfix"><span>基本时长:</span></div>
<div class="input_info">
<input type="text" name="baseDuration" class="width100" />
<span class="info">小时</span>
<span class="required">*</span>
<div class="validate_msg_long">1-600之间的整数</div>
</div>
<div class="text_info clearfix"><span>基本费用:</span></div>
<div class="input_info">
<input type="text" name="baseCost" class="width100" />
<span class="info">元</span>
<span class="required">*</span>
<div class="validate_msg_long">0-99999.99之间的数值</div>
</div>
<div class="text_info clearfix"><span>单位费用:</span></div>
<div class="input_info">
<input type="text" name="unitCost" class="width100" />
<span class="info">元/小时</span>
<span class="required">*</span>
<div class="validate_msg_long">0-99999.99之间的数值</div>
</div>
<div class="text_info clearfix"><span>资费说明:</span></div>
<div class="input_info_high">
<textarea class="width300 height70" name="descr"></textarea>
<div class="validate_msg_short">100长度的字母、数字、汉字和下划线的组合</div>
</div>
<div class="button_info clearfix">
<input type="submit" value="保存" class="btn_save" />
<input type="button" value="取消" class="btn_save" onclick="history.back();"/>
</div>
</form>
</div>
<!--主要区域结束-->
<div id="footer">
<span>[源自北美的技术,最优秀的师资,最真实的企业环境,最适用的实战项目]</span>
<br />
<span>版权所有(C)加拿大达内IT培训集团公司 </span>
</div>
</body>
</html>

add.jsp

<%@page pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>达内-NetCTOSS</title>
<link type="text/css" rel="stylesheet" media="all" href="styles/global.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<link type="text/css" rel="stylesheet" media="all" href="styles/global_color.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<script language="javascript" type="text/javascript">
//排序按钮的点击事件
function sort(btnObj) {
if (btnObj.className == "sort_desc")
btnObj.className = "sort_asc";
else
btnObj.className = "sort_desc";
} //启用
function startFee() {
var r = window.confirm("确定要启用此资费吗?资费启用后将不能修改和删除。");
document.getElementById("operate_result_info").style.display = "block";
}
//删除
function deleteFee() {
var r = window.confirm("确定要删除此资费吗?");
}
</script>
</head>
<body>
<!--Logo区域开始-->
<div id="header">
<img src="data:images/logo.png" alt="logo" class="left"/>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >[退出]</a>
</div>
<!--Logo区域结束-->
<!--导航区域开始-->
<div id="navi">
<ul id="menu">
<li><a href="../index.html" rel="external nofollow" rel="external nofollow" class="index_off"></a></li>
<li><a href="../role/role_list.html" rel="external nofollow" rel="external nofollow" class="role_off"></a></li>
<li><a href="../admin/admin_list.html" rel="external nofollow" rel="external nofollow" class="admin_off"></a></li>
<li><a href="../fee/fee_list.html" rel="external nofollow" rel="external nofollow" class="fee_off"></a></li>
<li><a href="../account/account_list.html" rel="external nofollow" rel="external nofollow" class="account_off"></a></li>
<li><a href="../service/service_list.html" rel="external nofollow" rel="external nofollow" class="service_off"></a></li>
<li><a href="../bill/bill_list.html" rel="external nofollow" rel="external nofollow" class="bill_off"></a></li>
<li><a href="../report/report_list.html" rel="external nofollow" rel="external nofollow" class="report_off"></a></li>
<li><a href="../user/user_info.html" rel="external nofollow" rel="external nofollow" class="information_off"></a></li>
<li><a href="../user/user_modi_pwd.html" rel="external nofollow" rel="external nofollow" class="password_off"></a></li>
</ul>
</div>
<!--导航区域结束-->
<!--主要区域开始-->
<div id="main">
<form action="" method="">
<!--排序-->
<div class="search_add">
<div>
<!--<input type="button" value="月租" class="sort_asc" onclick="sort(this);" />
<input type="button" value="基费" class="sort_asc" onclick="sort(this);" />
<input type="button" value="时长" class="sort_asc" onclick="sort(this);" />-->
</div>
<!--
当前:/netctoss/findCost.do
目标:/netctoss/toAddCost.do
-->
<input type="button" value="增加" class="btn_add" onclick="location.href='toAddCost.do';" />
</div>
<!--启用操作的操作提示-->
<div id="operate_result_info" class="operate_success">
<img src="data:images/close.png" onclick="this.parentNode.style.display='none';" />
删除成功!
</div>
<!--数据区域:用表格展示数据-->
<div id="data">
<table id="datalist">
<tr>
<th>资费ID</th>
<th class="width100">资费名称</th>
<th>基本时长</th>
<th>基本费用</th>
<th>单位费用</th>
<th>创建时间</th>
<th>开通时间</th>
<th class="width50">状态</th>
<th class="width200"></th>
</tr>
<c:forEach items="${costs }" var="c">
<tr>
<td>${c.costId }</td>
<td><a href="fee_detail.html" rel="external nofollow" >${c.name }</a></td>
<td>${c.baseDuration }</td>
<td>${c.baseCost }</td>
<td>${c.unitCost }</td>
<td>${c.creatime }</td>
<td>${c.startime }</td>
<td>
<c:if test="${c.status==0 }">开通</c:if>
<c:if test="${c.status==1 }">暂停</c:if>
</td>
<td>
<input type="button" value="启用" class="btn_start" onclick="startFee();" />
<input type="button" value="修改" class="btn_modify" onclick="location.href='fee_modi.html';" />
<input type="button" value="删除" class="btn_delete" onclick="deleteFee();" />
</td>
</tr>
</c:forEach>
</table>
<p>业务说明:<br />
1、创建资费时,状态为暂停,记载创建时间;<br />
2、暂停状态下,可修改,可删除;<br />
3、开通后,记载开通时间,且开通后不能修改、不能再停用、也不能删除;<br />
4、业务账号修改资费时,在下月底统一触发,修改其关联的资费ID(此触发动作由程序处理)
</p>
</div>
<!--分页-->
<div id="pages">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >上一页</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="current_page">1</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >3</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >4</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >5</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >下一页</a>
</div>
</form>
</div>
<!--主要区域结束-->
<div id="footer">
<p>[源自北美的技术,最优秀的师资,最真实的企业环境,最适用的实战项目]</p>
<p>版权所有(C)加拿大达内IT培训集团公司 </p>
</div>
</body>
</html>

find.jsp

src/main/webapp/WEB-INF/main/

<%@page pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>达内-NetCTOSS</title>
<link type="text/css" rel="stylesheet" media="all" href="styles/global.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<link type="text/css" rel="stylesheet" media="all" href="styles/global_color.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
</head>
<body class="index">
<!--导航区域开始-->
<div id="index_navi">
<ul id="menu">
<li><a href="index.html" rel="external nofollow" class="index_off"></a></li>
<li><a href="role/role_list.html" rel="external nofollow" class="role_off"></a></li>
<li><a href="admin/admin_list.html" rel="external nofollow" class="admin_off"></a></li>
<li><a href="fee/fee_list.html" rel="external nofollow" class="fee_off"></a></li>
<li><a href="account/account_list.html" rel="external nofollow" class="account_off"></a></li>
<li><a href="service/service_list.html" rel="external nofollow" class="service_off"></a></li>
<li><a href="bill/bill_list.html" rel="external nofollow" class="bill_off"></a></li>
<li><a href="report/report_list.html" rel="external nofollow" class="report_off"></a></li>
<li><a href="user/user_info.html" rel="external nofollow" class="information_off"></a></li>
<li><a href="user/user_modi_pwd.html" rel="external nofollow" class="password_off"></a></li>
</ul>
</div>
</body>
</html>

index.jsp

<%@page pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>达内-NetCTOSS</title>
<link type="text/css" rel="stylesheet" media="all" href="styles/global.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
<link type="text/css" rel="stylesheet" media="all" href="styles/global_color.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" />
</head>
<body class="index">
<div class="login_box">
<form action="login.do" method="post">
<table>
<tr>
<td class="login_info">账号:</td>
<td colspan="2"><input name="adminCode" type="text" class="width150" /></td>
<td class="login_error_info"><span class="required">30长度的字母、数字和下划线</span></td>
</tr>
<tr>
<td class="login_info">密码:</td>
<td colspan="2"><input name="password" type="password" class="width150" /></td>
<td><span class="required">30长度的字母、数字和下划线</span></td>
</tr>
<tr>
<td class="login_info">验证码:</td>
<td class="width70"><input name="" type="text" class="width70" /></td>
<td><img src="data:images/valicode.jpg" alt="验证码" title="点击更换" /></td>
<td><span class="required"></span></td>
</tr>
<tr>
<td></td>
<td class="login_button" colspan="2">
<!--
1.表单有onsubmit事件,点击submit按钮时触发
2.表单还有submit(),通过js可以调用,调用时
会提交数据,其效果和触发onsubmit事件一样
-->
<a href="javascript:document.forms[0].submit();" rel="external nofollow" ><img src="data:images/login_btn.png" /></a>
</td>
<td><span class="required">${error }</span></td>
</tr>
</table>
</form>
</div>
</body>
</html>

login.jsp

src/main/webapp/WEB-INF/

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>netctoss</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <servlet>
<servlet-name>main</servlet-name>
<servlet-class>web.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping></web-app>

web.xml

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731