资源描述
部分代码展示如下:
图片验证码生成代码如下(CheckCodeAciton):
public class CheckCodeAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
response.setContentType("image/jpeg");
// 图片的内存映像
BufferedImage image=new
BufferedImage(60,25,BufferedImage.TYPE_INT_RGB);
// 获得画笔对象
Graphics g = image.getGraphics();
Random r = new Random();
g.setColor(new
Color(r.nextInt(255),r.nextInt(255),r.nextInt(255)));
g.fillRect(0, 0, 60, 25);
g.setColor(new Color(0,0,0));
String str = "";
for(int i=0;i<4;i++){
char ch = 'A';
str+=(char)(ch+r.nextInt(26));
}
//String number = String.valueOf(r.nextInt(99999));
String number = str;
HttpSession session = request.getSession();
session.setAttribute("number", number);
g.drawString(number, 10, 18);
for(int i=0;i<2;i++){
g.setColor(
new Color(r.nextInt(255),
r.nextInt(255),
r.nextInt(255)));
g.drawLine(r.nextInt(60), r.nextInt(25),
r.nextInt(60), r.nextInt(25));
}
// 压缩成jpeg格式
OutputStream os;
try {
os = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
// 把BufferedImage对象中的图像信息编码后
// 向创建该对象(encoder)时指定的输出流输出
encoder.encode(image);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
密码采用了加密算法,工具类代码如下:
public final class DegistUtil {
public static String md5(String str){
try {
//将密码变成字节再加密
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bys = md.digest(str.getBytes());
//将加密后的字节数组使用Base64算法变成字符
BASE64Encoder encode = new BASE64Encoder();
return encode.encode(bys);
} catch (Exception e) {
e.printStackTrace();
return null;
}
分页技术核心代码:
for(int i=0;i<cats.size();i++){
Category c = cats.get(i);
counts+=c.getCount();
if(c.getId()==scc){
pages= c.getCount()/size;
if(c.getCount() % size != 0){
pages++;
}
}
}
if(page>=pages){
bookListForm.setPage(pages);
page=pages;
}
if(page<1){
bookListForm.setPage(1);
page=1;
}
int beginIndex = (page-1)*5;
List<Book>books = DAOFactory.getBookDAO().findByParentId(scc,beginIndex, size);
request.getSession().setAttribute("counts", counts);
if(pages==0){
pages = 1;
}
购物车核心代码CartService:
public class CartService {
private Map<Integer,CartItem> store
= new HashMap<Integer,CartItem>();
public CartService(){
}
public static CartService getInstance(HttpSession session){
CartService cart
= (CartService)session.getAttribute("cart");
if(cart == null){
cart = new CartService();
session.setAttribute("cart", cart);
}
return cart;
}
public void add(Integer id){
if(store.containsKey(id)){
CartItem item = store.get(id);
item.setNum(item.getNum()+1);
}else{
Book book = DAOFactory.getBookDAO().findById(id);
CartItem item = new CartItem();
item.setPro(book);
store.put(id,item);
}
}
public void delete(Integer id){
if(store.containsKey(id)){
CartItem item = store.get(id);
item.setBuy(false);
}
}
public void delete(boolean flag){
Set set = store.entrySet();
Iterator it = set.iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
CartItem item = (CartItem)entry.getValue();
if(item.isBuy()==flag){
it.remove();
}
}
}
public void recovery(Integer id){
if(store.containsKey(id)){
CartItem item = store.get(id);
item.setBuy(true);
}
}
public double cost(boolean flag){
double sum = 0;
List<CartItem> items = getItems(true);
for(int i=0;i<items.size();i++){
CartItem item = new CartItem();
item = items.get(i);
if(flag){
double ss =
item.getPro().getFixed_price()*item.getNum();
sum+=ss;
}else{
double ss =
item.getPro().getDang_price()*item.getNum();
sum+=ss;
}
}
return sum;
}
public void update(Integer id,int num){
if(store.containsKey(id)){
CartItem item = store.get(id);
item.setNum(num);
}
}
public List<CartItem> getItems(boolean isbuy){
List<CartItem> items = new ArrayList<CartItem>();
Set set = store.entrySet();
Iterator it = set.iterator();
while(it.hasNext()){
Map.Entry entry = (Map.Entry)it.next();
CartItem item = (CartItem)entry.getValue();
if(item.isBuy()==isbuy){
items.add(item);
}
}
return items;
}
}
Ajax异步请求代码如下:
$(function(){
$("#address").change(function(){
if($(this).html!="填写新地址"){
$.ajax({
url:"<%=request.getContextPath()%>/select.do",
type:"post",
data:$("#address").serialize(),
dataType:"json",
success:function(data,status){
$("#receiveName").val(data.receive_name);
$("#fullAddress").val(data.full_address);
$('#postalCode').val(data.postal_code);
$('#phone').val(data.phone);
$('#mobile').val(data.mobile);
},
error:function(xhr,textStatus,errorThrown){
alert(xhr.status);
}
});
}
});
});
ManagerLoginAction代码如下:
public class ManagerLoginAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
ManagerLoginForm managerForm = (ManagerLoginForm)form;
String managername = managerForm.getManagername();
String password = managerForm.getPassword();
if(managername.trim().equals("sunjinfu") && password.trim().equals("sunluoyang1987")){
request.getSession().setAttribute("manager_error", null);
request.getSession().setAttribute("manager", "success");
return mapping.findForward("index");
}else{
request.getSession().setAttribute("manager_error", "管理员登录验证失败");
return mapping.findForward("manager_login");
}
部分页面代码如下:
<script>
function collapse_change(menucount) {
if ($('menu_' + menucount).style.display == 'none') {
$('menu_' + menucount).style.display = '';
$('menuimg_' + menucount).src
= 'css/main/menu_reduce.gif';
} else {
$('menu_' + menucount).style.display = 'none';
$('menuimg_' + menucount).src =
'css/main/menu_add.gif';
}
}
</script>
<script type="text/javascript">
var menus = new Array('g1','g2','g3','g4');
function togglemenu(id) {
for (i = 0; i < menus.length; i++) {
var k = menus[i];
parent.menu.document.getElementById(k).style.display = (k == id ? '' : 'none');
}
}
function sethighlight(n) {
var lis = document.getElementsByTagName('li');
for(var i = 0; i < lis.length; i++) {
lis[i].id = '';
}
lis[n].id = 'menuon';
}
</script>
SearchUserAction代码如下:
public class SearchUserAction extends Action{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
UserManageForm manageForm = (UserManageForm)form;
String email_id = manageForm.getEmail_id();
User user = null;
String reg1 = "^.{1,30}@\\w{2,10}\\..{2,10}";
String reg2 = "^[0-9]+$";
UserDAOImpl userDAO = (UserDAOImpl) DAOFactory.getUserDAO();
if(email_id.matches(reg1)){
user = userDAO.findByEmail(email_id.trim());
}else if(email_id.matches(reg2)){
user =
userDAO.findById(Integer.parseInt(email_id.trim()));
request.getSession().setAttribute("user_error", null);
manageForm.setUser(user);
return mapping.findForward("user_detail");
// }
}else{
request.getSession().setAttribute("user_error", "您的输入 有误!");
return mapping.findForward("user_list");
}
}
}
Ajax级联动态下拉框代码如下:
$(function(){
$("#superCategory").change(function(){
if($(this).html!="选择分类"){
$.ajax({
url:"<%=request.getContextPath()%>/getcategory.do",
type:"post",
data:$("#superCategory").serialize(),
dataType:"json",
success:function(data,status){
document.getElementById("category").innerHTML="";
for(var i=0;i<data.length;i++){
var op =
new Option(data[i].name,data[i].id);
var categoryObj =
document.getElementById("category");
categoryObj.options[i] = op;
}
},
error:function(xhr,textStatus,errorThrown){
alert(xhr.status);
}
});
}
});
});
$(function(){
$("#category").change(function(){
$.ajax({
url:"<%=request.getContextPath()%>/getsubcategory.do",
type:"post",
data:$("#category").serialize(),
dataType:"json",
success:function(data,status){
$("#whichCategory").val(data.name);
},
error:function(xhr,textStatus,errorThrown){
alert(xhr.status);
}
});
});
});
新增Ajax代码如下:
$(function(){
$("#category").change(function(){
if($(this).html!="选择父类"){
$.ajax({
url:"<%=request.getContextPath()%>/selectcategory.do",
type:"post",
data:$("#category").serialize(),
dataType:"json",
success:function(data,status){
$("#supercategoryName").val(data.name);
},
error:function(xhr,textStatus,errorThrown){
alert(xhr.status);
}
});
}
});
});
$(function(){
$('#f').validate(
{
rules:{
categoryName:{required:true, remote: {
url: "../checkcategory.do?dt=
"+new Date().getTime(),
type: "post", //数据发送方式
dataType: "json", //接受数据格式
data: { //要传递的数据
name: function(){
return $("#categoryName").val();
}
}
}
展开阅读全文