Java 是否可以将HttpServlet请求对象的内容复制到数组列表中?
我想访问HttpServlet请求的内容。为此,我将HttpServlet请求对象分配到arraylist中。这是我编写的web服务代码,请在下面查找我的代码:Java 是否可以将HttpServlet请求对象的内容复制到数组列表中?,java,web-services,arraylist,Java,Web Services,Arraylist,我想访问HttpServlet请求的内容。为此,我将HttpServlet请求对象分配到arraylist中。这是我编写的web服务代码,请在下面查找我的代码: @Path("/login") public class Login { DBConnection dBConnection = new DBConnection(); static long logintimemilli; @GET @Produces(MediaType.APPLICATION_
@Path("/login")
public class Login
{
DBConnection dBConnection = new DBConnection();
static long logintimemilli;
@GET
@Produces(MediaType.APPLICATION_JSON)
public String checkLogin(@QueryParam("username")String username,@QueryParam("password")String password,@QueryParam("clientid")String clientno,@QueryParam("callback")String callback,@Context HttpHeaders headers,@Context HttpServletRequest request)
{
JSONObject loginresult = new JSONObject();
try
{
String query = QuerySelector.getQuery("user.checklogin");
loginresult = dBConnection.queryForJSONObject(query, username,password,clientno);
ArrayList<String> user= new ArrayList <String>();
HttpSession session = request.getSession();
user = (ArrayList<String>) (List) session.getAttribute("USER");
insertauditList(user,ip);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return callback + "(" + loginresult.toString() + ")" ;
}
public void insertauditList(ArrayList<String> user,String ip)
{
try
{
for (String s : user) { System.out.printl(s);
}
//(for the above for loop i am getting a runtime error)
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
根据问题标题,您希望将
HttpServletRequest
内容复制到ArrayList,但在代码中,您试图获取HttpSession
并从HttpSession
对象获取属性。在下面的代码中,您可以将请求参数映射复制到ArrayList
private void showRequestParamaters(HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap();
List<String> requestParams = new ArrayList<>();
for (Entry<String, String[]> entry : parameterMap.entrySet()) {
String[] paramValues = entry.getValue();
if (paramValues != null) {
for (String p : paramValues) {
requestParams.add(p);
}
}
}
for (String s : requestParams) {
System.out.println(s);
}
}
private void showRequestParameters(HttpServletRequest请求){
Map parameterMap=req.getParameterMap();
List requestParams=new ArrayList();
对于(条目:parameterMap.entrySet()){
字符串[]paramValues=entry.getValue();
if(参数值!=null){
for(字符串p:paramValues){
requestParams.add(p);
}
}
}
for(字符串s:requestParams){
系统输出打印项次;
}
}
您遇到了什么错误?下面是我遇到的异常:java.lang.IllegalStateException:getAttribute:Session已失效在您的问题中发布堆栈跟踪。Session.getAttribute(“用户”),你把它放在哪里?像session.setAttribute(“用户”)?和user=(ArrayList)(List)session.getAttribute(“用户”);我觉得不太好。修复getAttribute()非法状态异常后,将获得ClassCastException
private void showRequestParamaters(HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap();
List<String> requestParams = new ArrayList<>();
for (Entry<String, String[]> entry : parameterMap.entrySet()) {
String[] paramValues = entry.getValue();
if (paramValues != null) {
for (String p : paramValues) {
requestParams.add(p);
}
}
}
for (String s : requestParams) {
System.out.println(s);
}
}