小弟我想实现每个登陆的人看到的表单内容不一样.可是遇到了有关问题.
我想实现每个登陆的人看到的表单内容不一样..可是遇到了问题..求助
我首先在goods表里设了一个外键userId,之后我在用户登录的地方用session存了user的信息...在goodsServlet里想要获取session的user的id值给userId...这样的想法对吧?
package com.web;
import java.io.IOException;
import javax.jms.Session;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
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 com.bean.Goods;
import com.bean.User;
import com.dao.GoodsDao;
import com.jspsmart.upload.Request;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class AddGoodServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
SmartUpload smartUpload=new SmartUpload();
Request req=smartUpload.getRequest();
ServletConfig config=this.getServletConfig();
smartUpload.initialize(config,request,response);
try {
smartUpload.upload();
String good_name=req.getParameter("good_name");//一定要放在smartUpload.upload()之后
/*System.out.println("good_name的值为:"+good_name);*/
String fixed_price=req.getParameter("fixed_price");
/*System.out.println("fixed_price的值为:"+fixed_price);*/
double a=Double.valueOf(fixed_price);
String score=req.getParameter("score");
/*System.out.println("score的值为:"+score);*/
int b=Integer.parseInt(score);
com.jspsmart.upload.File smartFile=smartUpload.getFiles().getFile(0);
smartFile .saveAs("/productImages/"+smartFile.getFileName(),SmartUpload.SAVE_VIRTUAL);
String msg="Upload Success!";
request.setAttribute("msg", msg);
String userId=request.getSession().getId();
int e=Integer.parseInt(userId);//这样写对么?
/*System.out.println("userId的值为:"+e);*/
Goods goods=new Goods();
goods.setGood_name(good_name);
goods.setFixed_price(a);
goods.setScore(b);
goods.setProduct_pic("productImages/"+smartFile.getFileName());
goods.setUserId(e);
GoodsDao dao=new GoodsDao();
dao.Savegoods(goods);
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
RequestDispatcher rd=request.getRequestDispatcher("/Goodlist");
rd.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
这样子之后报错为input string.....一堆东西..怎么回事呢...
------解决方案--------------------
当然错了,楼主还不会用getSession,你的user信息要通过Session的setAttribute/getAttribute方法设置和获取!
我首先在goods表里设了一个外键userId,之后我在用户登录的地方用session存了user的信息...在goodsServlet里想要获取session的user的id值给userId...这样的想法对吧?
package com.web;
import java.io.IOException;
import javax.jms.Session;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
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 com.bean.Goods;
import com.bean.User;
import com.dao.GoodsDao;
import com.jspsmart.upload.Request;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class AddGoodServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
SmartUpload smartUpload=new SmartUpload();
Request req=smartUpload.getRequest();
ServletConfig config=this.getServletConfig();
smartUpload.initialize(config,request,response);
try {
smartUpload.upload();
String good_name=req.getParameter("good_name");//一定要放在smartUpload.upload()之后
/*System.out.println("good_name的值为:"+good_name);*/
String fixed_price=req.getParameter("fixed_price");
/*System.out.println("fixed_price的值为:"+fixed_price);*/
double a=Double.valueOf(fixed_price);
String score=req.getParameter("score");
/*System.out.println("score的值为:"+score);*/
int b=Integer.parseInt(score);
com.jspsmart.upload.File smartFile=smartUpload.getFiles().getFile(0);
smartFile .saveAs("/productImages/"+smartFile.getFileName(),SmartUpload.SAVE_VIRTUAL);
String msg="Upload Success!";
request.setAttribute("msg", msg);
String userId=request.getSession().getId();
int e=Integer.parseInt(userId);//这样写对么?
/*System.out.println("userId的值为:"+e);*/
Goods goods=new Goods();
goods.setGood_name(good_name);
goods.setFixed_price(a);
goods.setScore(b);
goods.setProduct_pic("productImages/"+smartFile.getFileName());
goods.setUserId(e);
GoodsDao dao=new GoodsDao();
dao.Savegoods(goods);
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
RequestDispatcher rd=request.getRequestDispatcher("/Goodlist");
rd.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
这样子之后报错为input string.....一堆东西..怎么回事呢...
------解决方案--------------------
当然错了,楼主还不会用getSession,你的user信息要通过Session的setAttribute/getAttribute方法设置和获取!