jsp接收不到servlet传的数据,怎么解决?

servlet类:
package Control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class Demoo
    */
    @WebServlet(name="Demoo",urlPatterns = { "/Demoo"})
    public class Demoo extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    String a="aaaaaaa";
    request.setAttribute("aa",a);
    request.getRequestDispatcher("a.jsp").forward(request, response);
    

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //doGet(request, response);

    }

}

jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="Beans.*,java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>



Insert title here

    <p>传值:</p>
    <p>${aa}</p>
    <%=request.getAttribute("aa")%>


1个回答

原理上来讲,用法是没有错的,需要排除一下是不是用了框架,页面两个地方都没有数值吗?

qq_45684208
qq_45684208 感谢,是因为电脑问题不能运行,现已解决,麻烦了
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何在JSP中将canvas保存为图片然后上传到servlet
java MVC入门选手, 用canvas在JSP中设计了一个画板,想把用户画在画板上的画保存为图片然后上传到servlet,之前尝试先通过canvas.toDataURL()转为base64格式,然后用form提交到servlet,但不知道servlet该怎么收···代码如下,求大神指教 JSP代码 <input id="imgurl" type="button" value="OK" style="width:160px;"/> </div> <canvas id="canvas" width="740" height="500"></canvas> <form name="myform" action="loginServlet" method="post" enctype="multipart/form-data"> <input type="hidden" id="pic" name="pic" value="" /> </form> 点击OK按钮后JS对应执行的函数是 getUrl:function() { myPic=this.canvas.toDataURL(); document.getElementById('pic').value = myPic; document.myform.submit(); } 我想在把base64格式的图片数据传到servlet之后,再response到前端打印出来,但不知道servlet的doPost方法中如何接收数据···,试了试String mypic = request.getParameter("pic")并不能成功,求大神指教
webuploader用 servlet转发给jsp,jsp页面收不到呢?
![图片说明](https://img-ask.csdn.net/upload/201710/24/1508807699_670713.png) 这是servlet 代码 ``` package com.servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { @SuppressWarnings({ "rawtypes", "null" }) public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); try{ final long MAX_SIZE = 3* 1024 * 1024;// 设置上传文件最大为 3M // 允许上传的文件格式的列表 final String[] allowedExt = new String[] {"jpg","jpeg","gif"}; response.setContentType("text/html"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new DiskFileItemFactory(); dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/")+ "upload"));// 设置存放临时文件的目录,web根目录下的upload目录 System.out.println("临时目录:"+new File(request.getRealPath("/")+ "upload")); // 用以上工厂实例化上传组件 ServletFileUpload sfu = new ServletFileUpload(dfif); // 设置最大上传尺寸 sfu.setSizeMax(MAX_SIZE); // 从request得到 所有 上传域的列表 List fileList = null; try { fileList = sfu.parseRequest(request); } catch (FileUploadException e) {// 处理文件尺寸过大异常 if (e instanceof SizeLimitExceededException) { out.println("文件尺寸超过规定大小:" + MAX_SIZE + "字节!"); return; } e.printStackTrace(); } // 没有文件上传 if (fileList == null || fileList.size() == 0) { out.println("请选择上传文件!"); return; } // 得到所有上传的文件 Iterator fileItr = fileList.iterator(); System.out.println("fileList:"+fileList); // 循环处理所有文件 while (fileItr.hasNext()) { FileItem fileItem = null; String path = null; long size = 0; // 得到当前文件 fileItem = (FileItem) fileItr.next(); // 忽略简单form字段而不是上传域的文件域(<input type="text" />等) if (fileItem == null || fileItem.isFormField()) { continue; } // 得到文件的完整路径 path = fileItem.getName(); // 得到文件的大小 size = fileItem.getSize(); if ("".equals(path) || size == 0) { out.println("请选择上传文件!"); return; } // 得到去除路径的文件名 String t_name = path.substring(path.lastIndexOf("//") + 1);//kaola.jpeg System.out.println("t_name:"+t_name); // 得到文件的扩展名(无扩展名时将得到全名) String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);//jpeg System.out.println(t_ext); // 拒绝接受规定文件格式之外的文件类型 String tmp=Arrays.toString(allowedExt); Pattern p = Pattern.compile(t_ext); Matcher m = p.matcher(tmp); if (m.find()==true) { //如果符合上传的格式 String now=new SimpleDateFormat("yyyyMMddhhmmssSSS").format(new Date()); System.out.println(now); // 根据系统时间生成上传后保存的文件名 String prefix = now; // 保存的最终文件完整路径,保存在web根目录下的upload目录下 String u_name = request.getRealPath("/") + "upload/" + prefix + "." + t_ext; String dwc; dwc=u_name; ** //转发给jsp页面 request.setAttribute("dwc",dwc); request.getRequestDispatcher( "/files1/xinzengchandizhengmingg**uanli.jsp").forward(request,response); System.out.println("最终保存目录:"+u_name); try { File file = new File(u_name); // 保存文件 fileItem.write(file); out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext + " &nbsp;&nbsp;文件大小: " + size + "字节<p />"); } catch (Exception e) { e.printStackTrace(); } }else { System.out.println("不符合规定"); out.print("上传文件不符合规定!"); } } }catch(Exception e){ out.print("系统异常,请稍后再试!"); e.printStackTrace(); } } } ``` ** //转发给jsp页面 request.setAttribute("dwc",dwc); request.getRequestDispatcher( "/files1/xinzengchandizhengmingg**uanli 这也我想把上传成功的文件名传给jsp页面,然后添加到数据库,,试了好多方法,传不去过去值。 <!--测试接收到servlet传值显示在text框中--> <input type="text" class="input-text" value='${dwc}' placeholder="" id="" name="">
jsp页面我用js控制form的表单action的改变
jsp页面我用js控制form的表单action的改变(action是Servlet),但是我的后台一直接收不到表单的数据
求助!为什么前端jsp接收不到后端action传来的值?
``` package com.admin; import java.util.ArrayList; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.core.CalTime; import com.opensymphony.xwork2.Action; import db.link.ParkinfoDao; import db.link.Parking_info; import db.link.Parking_record; import db.link.ParkreDao; //import db.link.ParkreDao; import db.link.Prinfo; import db.link.User; import db.link.UserDao; public class LoginAction implements Action{ private String username; private String password; private String type; private String tip; private ArrayList<User> list; public ArrayList<Parking_info> plist; public ArrayList<String> slist;//这是重点! public ArrayList<Parking_record> prlist; public int a[][];//这是重点! public ArrayList<Double> fare;//这是重点! //public ArrayList<Prinfo> prlist=new ArrayList<Prinfo>(); private UserDao userdao=new UserDao(); private ParkinfoDao pdao=new ParkinfoDao(); private ParkreDao rdao=new ParkreDao(); public LoginAction(){ } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } public String execute(){ list=userdao.getUserList(); plist=pdao.getPrList(); slist=rdao.getCarNum(); /*for(int i=0;i<plist.size();i++){ prlist.add(new Prinfo()); prlist.get(i).setId(plist.get(i).getId()); prlist.get(i).setStatus(plist.get(i).getStatus()); prlist.get(i).setPlicense(plist.get(i).getId()); }*/ prlist=rdao.getPrList(); CalTime clt=new CalTime(); ArrayList<Integer> il=new ArrayList<Integer>(); fare=new ArrayList<Double>(); for(int i=0;i<prlist.size();i++){ Parking_record pr=prlist.get(i); if(pr.getFare()==0){ fare.add(clt.getNowFare(pr.getIntime())); } } a=new int[fare.size()][3]; int j=0; for(int i=0;i<prlist.size();i++){ Parking_record pr=prlist.get(i); if(pr.getDuration()==0){ il=clt.getShowTime(pr.getIntime()); a[j][0]=il.get(0); a[j][1]=il.get(1); a[j][2]=il.get(2); j++; } } User user; for(int i=0;i<list.size();i++){ user=list.get(i); if(user.getUsername().equals(username)&&user.getPassword().equals(password)){ if(user.getType().equals(type)){ HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession(); session.setAttribute("username", username); session.setAttribute("plist", plist); session.setAttribute("prlist", prlist); System.out.println(fare.get(0)+":"+slist.get(1)); if(type.equals("operator")){ return SUCCESS; } else{ return LOGIN; } } else{ setTip("用户与类型不匹配"); return ERROR; } } } setUsername("USERNAME"); setPassword("Password"); setTip("用户或密码错误,请重新输入"); return ERROR; } } ``` 以上是后台的代码 ``` <div class="content" id="print" style="display:none"> <!--<font size="3">车牌号码:</font> <input type="text"></input> <input type="submit" value="登记"></input>--> <input type="text" value="输入关键字"> <s:form> <table style="width: 60%;margin:auto"> <tr> <th>编号</th> <th>车牌号码</th> <th>所在车位</th> <th>入场时间</th> <th>出场时间</th> <th>停车时长</th> <th>总费用</th> </tr> <s:iterator value="prlist" status="sts" id="prl" begin="0" end="8"> <tr> <td><s:property value="#prl.id"/></td> <td><s:property value="#prl.plate_license"/></td> <td><s:property value="#prl.parking_num"/></td> <td><s:property value="#prl.intime"/></td> <td><s:if test="#prl.outtime == null ">未离场</s:if> <s:else><s:property value="#prl.outtime"/></s:else> <td><s:if test="#prl.duration == 0"> <s:property value="time[<%=j%>][0]"/>天 <s:property value="time[<%=j%>][1]"/>小时 <s:property value="time[<%=j%>][2]"/>分钟 <% j++; %> </s:if> <s:else><s:property value="#prl.duration"/></s:else> <td><s:property value="fare[0]"/> <s:else><s:property value="#prl.fare"/></s:else></td> </tr> </s:iterator> </table> </s:form> </div> <div class="content" id="abnormal" style="display:none"> <!--<font size="3">车牌号码:</font> <input type="text"></input> <input type="submit" value="登记"></input> <input type="text" value="输入车位号码"> --> <input type="text" name="word" placeholder="请输入车位号码"/> <input type="submit" value="Search" /><br/> <s:form> <table style="width: 60%;margin:auto"> <tr> <th>车位号码</th> <th>车位状态</th> <th>车牌号码</th> <th>状态修改</th> </tr> <s:iterator value="plist" status="st" id="list" begin="0" end="8"> <tr> <td><s:property value="#list.id"/></td> <td><s:if test="#list.status == 'idle' ">空闲</s:if> <s:elseif test="#list.status == 'assigned' ">已分配</s:elseif> <s:else>异常</s:else></td> <td><s:if test="slist[#st.index] == null ">无车辆</s:if> <s:else><s:property value="slist[#st.index]"/></s:else></td> <td><a href="http://www.w3school.com.cn/" target="_blank">修改</a></td> </tr> </s:iterator> </table> </s:form> </div> ``` 以上是前台的代码 就是很奇怪,数组slist的值可以接收到,并且正常使用。然而数组fare的值却接收不到,页面上对应的fare一栏全是空的。我很疑惑,为什么会这样,有大佬能为我解答吗?
jsp页面从服务器接收数据,并且将数据经选择后提交到服务器
``` ``` jsp从servlet接收了一个数组,想利用select让用户选择后将选择后的结果提交回servlet,结果在向servlet提交过程中参数一直传不过去,求大神帮忙解决一下 ``` <! --classselect.jsp--> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'banjishumu.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <%String[] a = (String[])request.getSession().getAttribute("a");%> <%int i=0; %> <form action="Main" method="post" name="form2"> 请选择班级名称:<select name="ok1"> <% while(a[i]!=null) {%> <option value='<%=a[i] %>'><% out.println(a[i]);i++;%></option> <% } %> </select> <input type="submit" name="submit1" value="确认"/></form> </body> </html> //Main.java public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String adname=request.getParameter("adname"); String ok1=request.getParameter("ok1"); String []a=new String[100]; request.getSession().setAttribute("a",a); request.getRequestDispatcher("classselect.jsp").forward(request, response); } ```
浏览器取不到后台传过来的数据
后台传参代码: public class LoginAction extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try{ String uname=req.getParameter("uname"); String upass=req.getParameter("upass"); //service帮助验证 UserService us=new UserService(); User user=us.checkLogin(uname, upass); if(user==null){ resp.sendRedirect("login.jsp?f=9"); }else{ req.getSession().setAttribute("currentUser", user); resp.sendRedirect("main.jsp"); } }catch(Exception e){ e.printStackTrace(); } } } 浏览器端接收参数代码: <p align="center" id="errorMsg"> <!-- 问号传参用getParameter --> <% String f=request.getParameter("f"); if("9".equals(y)){ out.print("用户名密码错误"); } %> </p> 运行程序,前面都 正常运行,到了浏览器却报空指针错误,取不到参数f的值 什么原因? 错误日志: 严重: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.login_jsp._jspService(login_jsp.java:68) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662) null
servlet中的乱码问题(设置了utf-8)
我在前端通过文本框获取一个值传到servlet中(前端测试过,可以确定不是前端问题),servlet中得到的值却是乱码 下面是servlet中的代码 public class selAllServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置乱码 request.setCharacterEncoding("utf-8"); String keyVlu = request.getParameter("keyVlu");// 前端的关键字 System.out.println(keyVlu);//在这里输出的就是乱码 keyWordSel keySel = new keyWordSel();// 创建关键字查询类对象 page page = new page();// 创建页面对象 List<item> list = new ArrayList<item>();// 创建接收的list list = keySel.allSel(keyVlu, page);// 得到结果集 if (list != null) {// 如果结果集不为空 request.setAttribute("list", list);// 将结果集设置为request的范围,用户界面接收 request.getRequestDispatcher("/Exchange/JSP/showKeyVlu.jsp"); } } ``` ```
ext+servlet+mysql编码问题!!彻底崩了
ext+servlet+mysql 的一个管理系统 现在情况是 1. 用户登录到jsp 在文本框输入的参数, a = Ext.getCmp("XXX").getValue()获取不到 a永远为空"" (getCmp("XXX")成功,获取到了该组件,只是getValue为空) 2. 前台直接设置var a = "哈哈" 后台用b =getParameter("XXX")接收成功,输出 b="哈哈" 3. 后台sql 语句查询 sql= "select * from table wherename = '" +b+"'" 结果为空 (但复制System.out.println(""+sql)的sql语句去数据库直接查询是有结果的) 4. 数据库查询出来的数据能争取传到后台也能传到前台 代码问题绝对排除。。。已经被编码弄疯了。最开始把所有设置成UTF-8不行 后来又都设成GBK 更崩。。 求教一下整个mysql到前台到后台的编码设置方法。。平台是Myeclipse 9 自己弄了三天了没弄明白 谢谢了。。
java servlet的一个作业题.麻烦各位帮忙解决
** 1.配置本地端口号为99992. 提供留言页面,包括,标题,留言类型,内容提交到serlvet中进行处理、如果必填项为空,跳转重新让用户输入。留言信息完整保存到数据库中,并跳转成功页面,提示用户留言成功。addNote.jsp 增加留言的JSPReceiveNotServlet.java 接收留言信息的servletNote.java 留言实体对象Dbconnection.java 连接数据库并保存留言Success.jsp 成功页面要求不可以使用数据库连接池留言页面需要有JS验证,标题如果为空不允许提交 3.不使用eclipse,手动放置一个应用名称为"manalapp"的应用。该应用为作业2的功能。 并独立运行总共三问.谢谢各位高手帮助. ------------------------------------------------------------------------ **
使用ajax异步提交表单,为什么jsp可以传递数据,但是html就不行?
# jsp和html有什么区别? 刚刚学习java不久,只能简单描述步骤,希望大神可以帮忙解释一下: 1. 这个是ajax代码,html和jsp均为一样: ``` $(function () { $("#registerForm").submit(function () { if (checkUsername() && checkPassword() && checkEmail()){ $.post("registUserServlet",$(this).serialize(),function () { }) } return false; }); $("#username").blur(checkUsername); $("#password").blur(checkPassword); $("#email").blur(checkEmail); }); ``` _主要就是下面这行代码有问题:_ ``` $.post("registUserServlet",$(this).serialize(),function () { }) ``` 在html页面里,无论如何,就是无法将表单数据传递到 “registUserServlet”服务器里,并且tomcat和页面抓取都不报错,servlet也没有接收到数据(因为连servlet中的**System.out.println("servlet页面跳转");**也没有输出到控制台)。 有没有哪位大神可以解释一下啊,困扰了好几天了,突然脑子抽筋试了一下jsp居然成功了,但还是想知道一下原因,多谢~~
没找到问题在哪!!大神帮忙看一下代码(JSP使用JSTL的c:forEach标签显示数据怎么不管用
``` <form name="myform" method="post" action="newstypeservlet?op=batchDelete"> <table border="1"> <tr> <th>编号</th> <th>类型名</th> <th>编辑</th> <th>删除</th> </tr> <c:forEach items="${requestScope.newsTypeList }" var="newsType" varStatus="status"> <tr style="background-color: ${status.index%2==0?'red':'green' } "> <td> <input type="checkbox" name="ids" value="${newsType.id }"/> ${newsType.id } </td> <td>${newsType.typeName }</td> <td><a href="newstypeservlet?op=toEdit&id=${newsType.id }">编辑</a></td> <td><a href="newstypeservlet?op=delete&id=${newsType.id }">删除</a></td> </tr> </c:forEach> <tr> <td colspan="4" > <input type="button" value="批量删除" onclick="checkSelected()"/> </td> </tr> </table> </form> ``` Servlet里的代码: ``` protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // System.out.println("进入sevlet"); request.setCharacterEncoding("UTF-8");// 解决Post提交时的乱码问题 String op = request.getParameter("op");// 注意:此处的JSP页面不放在根目录下,Servlet就无法接收到页面传来的数据,因为web.xml配置信息无法覆盖 if ("add".equals(op)) { addNewsType(request, response); } else if ("list".equals(op)) { listNewsType(request, response); } else if ("batchDelete".equals(op)) { batchDelete(request, response); } else if ("delete".equals(op)) { deleteById(request, response); } } // 新闻列表 private void listNewsType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { NewsTypeService newsTypeService = new NewsTypeService(); List<NewsType> newsTypeList = newsTypeService.findAll(); request.setAttribute("newsTypeList", newsTypeList); request.getRequestDispatcher("../listNewsType.jsp").forward(request, response); } private void deleteById(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); String idStr = request.getParameter("id"); if (idStr == null || "".equals(idStr)) { out.write("<script>alert('密码不能为空');history.back();</script>"); return; } int id = Integer.parseInt(idStr); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.delete(id); // 删除数据后,返回列表 listNewsType(request, response); } private void batchDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] ids = request.getParameterValues("ids"); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.batchDelete(ids); // 删除数据后,返回列表 listNewsType(request, response); } ``` service代码: ``` public class NewsTypeService { public int save(NewsType newsType) { return new NewsTypeDao().save(newsType); } public int batchDelete(String[] ids) { return new NewsTypeDao().batchDelete(ids); } public List<NewsType> findAll() { return new NewsTypeDao().findAll(); } public int delete(int id) { return new NewsTypeDao().delete(id); } ``` DAO里的代码 ``` public class NewsTypeDao { DBUtil dbUtil = new DBUtil(); // 保存新闻类型 public int save(NewsType newsType) { String sql = "insert into newstype(typeName) values (?)"; Object[] params = { newsType.getTypeName() }; return dbUtil.executeUpdate(sql, params); // executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数) } public List<NewsType> findAll() { List<NewsType> newsTypeList = new ArrayList<NewsType>(); String sql = "select * from newstype"; ResultSet rs = dbUtil.executeQuery(sql, null); try { while (rs.next()) { NewsType newsType = new NewsType(rs.getInt("id"), rs.getString("typeName")); newsTypeList.add(newsType); } } catch (SQLException e) { e.printStackTrace(); return newsTypeList; } finally { dbUtil.closeAll(); } return newsTypeList; } /** * 批量删除 * * @param ids * 指定的ID集合 * @return */ public int batchDelete(String[] ids) { // TODO Auto-generated method stub String sql = "delete from newstype where id in(?)"; Object[] params = { ArrayUtil.array2String(ids, ",") }; return dbUtil.executeUpdate(sql, params); } /** * 根据Id进行删除 * * @param id * @return */ public int delete(int id) { String sql = "delete from newsType where id=?"; Object[] params = { id }; return dbUtil.executeUpdate(sql, params); } ## # }谢谢大神**** ```
关于json无法接收结果
上代码 public class itemClassServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); String item = request.getParameter("item");// 得到分类名称 item = new String(item.getBytes("iso-8859-1"), "utf-8");// 转码 String jsonStr="";// 要返回的data值 PrintWriter out = response.getWriter(); if (item.equals("家用电器")) { jsonStr = "[{\"大家电\":[\"one\":\"电视\",\"two\":,\"空调\"]}]"; out.print(jsonStr); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } 问题是 servlet发送的jsonStr的结果,jsp中的$.getJSON中的data接收不到
关于jsp页面信息拦截处理的问题
这是一个简单的登录页面,登录信息传到LogincheckServlet里 ``` <title>登录界面</title> </head> <body> <center> <h1 style="color:red">用户登录</h1> <form id="indexform" name="indexform" action="LogincheckServlet" method="post"> <table border="0"> <tr> <td>账号:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="pass"></td> </tr> </table> <br> <input type="submit" value="登录" style="color:#BC8F8F"> </form> </center> </body> </html> ``` 这是接收信息的后台 ``` package com.sy; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.fkjava.util.MD5; /** * Servlet implementation class LogincheckServlet */ @WebServlet("/LogincheckServlet") public class LogincheckServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LogincheckServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ @SuppressWarnings("unused") protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MD5 pwd = new MD5(); String username = new String(request.getParameter("username").getBytes("ISO8859_1"),"UTF-8"); String password = pwd.getMD5(request.getParameter("password")); try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://XXXXXXXXXX"; String usename = "XXXXXXXX"; String psw = "XXXXXXX"; Connection conn = DriverManager.getConnection(url,usename,psw); Statement stmt = conn.createStatement(); if(conn != null){ String sql = "select IsAdmin from LoginUser where UserName = '"+username+"' and LoginPwd = '"+password+"'"; ResultSet rs = stmt.executeQuery(sql); List<Administrator> list = new ArrayList<Administrator>(); if(rs.next()){ Administrator ait = new Administrator(); ait.setIsAdmin(rs.getInt("IsAdmin")); list.add(ait); request.setAttribute("list",list); }else{ System.out.println("密码错误或用户名不存在,请重新输入!"); } rs.close(); stmt.close(); conn.close(); }else{ System.out.print("数据库链接失败!"); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } List<Administrator> list = (List<Administrator>)request.getAttribute("list"); if(list == null || list.size() < 1){ System.out.print("没有数据"); }else{ for(Administrator ait : list){ if(ait.getIsAdmin() == 1){ response.sendRedirect("AIS.jsp"); }else if(ait.getIsAdmin() == 0){ response.sendRedirect("Administrator.jsp"); } } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } ``` 现在我运行jsp页面,发现不管填什么信息都会跳转到后台,但是什么都不运行。感觉就像前端的信息被拦截到后台但后台没有代码运行,呈现一片空白。这是为什么呢?有什么办法能让后台的程序运行起来
前端接收不到后台的值,求大神解决,在线等,解决了速度结贴。。。。。。。。。。。。。。。。。。。。
package com.togest.emis.modules.g6c.web; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import com.togest.emis.framework.orm.Page; import com.togest.emis.framework.orm.PropertyFilter; import com.togest.emis.framework.utils.ConvertUtils; import com.togest.emis.framework.utils.JSONParserUtils; import com.togest.emis.framework.utils.RequestParamUtils; import com.togest.emis.framework.utils.StringHelper; import com.togest.emis.modules.g6c.entity.Download; import com.togest.emis.modules.g6c.service.Downloadservice; import com.togest.emis.modules.system.cache.SystemCache; import com.togest.emis.modules.system.config.SystemConstants; /** * * @author mmk * * */ @Controller @RequestMapping(value = "/6c/system/download") public class DownloadController { @Autowired private Downloadservice service; @RequestMapping(method = RequestMethod.GET) public String list(Model model, HttpServletRequest request, String id) { model.addAttribute("psn_id", id); model.addAttribute(SystemConstants.NAV_PATH, SystemCache.getPath(id, RequestParamUtils.getUserID(request))); return "/6c/download"; } @RequestMapping(value = "getPage", method = RequestMethod.POST) public void getPage(HttpServletRequest request, HttpServletResponse response, String name, String address ,Model model) { Map<String, Object> map = new HashMap<String, Object>(); try { List<PropertyFilter> filters = PropertyFilter .buildFromHttpRequest(request); Page page = RequestParamUtils .getPage(request, new Page<Download>()); if (!page.isOrderBySetted()) { page.setOrderBy(SystemConstants.OrderByField); page.setOrder(Page.ASC); page = service.findPage(page, filters); } map.put(SystemConstants.EASYTABLE_PAGE_TOTAL_INDEX, page.getTotalCount()); map.put(SystemConstants.EASYTABLE_PAGE_RESULT_INDEX, page.getResult()); } catch (Exception e) { e.printStackTrace(); } try { JSONParserUtils.write(response, JSONObject.fromObject(map) .toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping(value = "save", method = RequestMethod.POST) public void save(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model,HttpServletResponse response, Download d,Map<String,Object> map) { String path = request.getSession().getServletContext() .getRealPath("download"); String fileName = request.getParameter("name"); String fileContent = file.getOriginalFilename(); String fileType = fileContent.substring(fileContent.lastIndexOf(".")); String fileAll = fileName+fileType; String address = path+"\\"+fileAll; String file_path = address.substring(address.lastIndexOf("download")); String fileUrl = request.getContextPath() + "/download/" + fileAll; // //String fileName = new Date().getTime()+".jpg"; File targetFile = new File(path, fileAll); if (!targetFile.exists()) { targetFile.mkdirs(); } // 保存 try { file.transferTo(targetFile); } catch (Exception e) { e.printStackTrace(); } map.put("fileAll", fileAll); model.addAttribute("address", address); model.addAttribute("path", path); model.addAttribute("fileAll", fileAll); model.addAttribute("fileUrl",fileUrl); model.addAttribute("fileName", fileName); System.out.println("+++++++++++++++"+ fileAll); if (StringHelper.isBlank(d.getId())) { d.setId(null); } //d.setFile(fileAll); d.setAddress(file_path); service.save(d); map = new HashMap<String, Object>(); map.put("msg", "新增成功"); try { JSONParserUtils.write(response, JSONObject.fromObject(map) .toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping(value = "edit", method = RequestMethod.GET) public void edit(HttpServletRequest request, HttpServletResponse response) { String id = RequestParamUtils.getStringParamter(request, "id"); if (id != null) { Download d = service.get(id); try { Map<String, Object> map = ConvertUtils.objectToMap(d, new String[] { "id", "sort", "name", "address" }); JSONObject json = JSONObject.fromObject(map); JSONParserUtils.write(response, json.toString()); } catch (Exception e) { e.printStackTrace(); } } } @RequestMapping(value = "update", method = RequestMethod.POST) public void update(HttpServletResponse response, Download d) { service.save(d); Map<String, Object> map = new HashMap<String, Object>(); map.put("msg", "修改成功"); try { JSONParserUtils.write(response, JSONObject.fromObject(map) .toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping(value = "delete", method = RequestMethod.POST) public void delete(HttpServletResponse response, String id) { Map<String, Object> map = new HashMap<String, Object>(); String[] ids = id.split(","); service.delete(id); map.put("msg", "删除成功"); try { JSONParserUtils.write(response, JSONObject.fromObject(map) .toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @RequestMapping(value = "find", method = RequestMethod.POST) public String find(Model model, HttpServletRequest request) { List<Download> dlist = service.findAll(); // for(Download d :dlist){ // String dname =d.getName(); // String daddress = d.getAddress(); // request.setAttribute("dname", dname); // request.setAttribute("daddress", daddress); // } model.addAttribute("dlist", dlist); // ActionContext.getContext().getSession().put("dlist", dlist); // ActionContext.getContext().getValueStack().set("dlist", dlist); // request.setAttribute("dlist", dlist); return "/system/passport/login"; } } 这是控制器的代码 package com.togest.emis.modules.g6c.service; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.togest.emis.framework.orm.Page; import com.togest.emis.framework.orm.PropertyFilter; import com.togest.emis.modules.g6c.dao.DownloadDao; import com.togest.emis.modules.g6c.entity.Download; import com.togest.emis.modules.system.entity.P_Dictionary; @Service public class Downloadservice { @Autowired private DownloadDao dao; /** * 根据主键ID删除实体 * * @param id */ public void delete(String id) { dao.delete(id); } /** * 保存实体 * * @param entity */ public void save(Download entity) { dao.save(entity); } /** * 根据主键ID获取实体 * * @param id * @return */ public Download get(String id) { return dao.get(id); } /** * 查询所有 */ public List<Download> findAll(){ String hql ="FROM Download"; List<Download> list = dao.find(hql); //for(Download d : list){ //System.out.println("+++++++++++++"+d.getName()); //} return list; } public Page<Download> findPage(final Page<Download> page, final List<PropertyFilter> filters) { return dao.findPage(page, filters); } } 业务层代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/common/taglibs.jsp"%>
Java WEB 连接数据库的登录界面失败?
连接数据库是成功的,但是输入用户名和密码后跳转到错误页面 有几段代码不太确定对不对,请帮忙看一看 //login.jsp ``` <form name="form1" method="post" action="manager.do?action=login"> ``` //struts-config.xml ``` <action name="managerForm" path="/manager" scope="request" type="com.action.Manager" validate="true"> <forward name="managerLoginok" path="/main.jsp" /> <forward name="error" path="/error.jsp" /> </action> ``` //Manager.java ``` package com.action; import org.apache.struts.action.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.actionForm.ManagerForm; import com.dao.ManagerDAO; import javax.servlet.http.HttpSession; public class Manager extends Action { private ManagerDAO managerDAO = null; public Manager() { this.managerDAO = new ManagerDAO(); } public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String action = request.getParameter("action"); if (action == null || "".equals(action)) { return mapping.findForward("error"); } else if ("login".equals(action)) { return managerLogin(mapping, form, request, response); } request.setAttribute("error", "操作失败!"); return mapping.findForward("error"); } // 管理员身份验证 public ActionForward managerLogin(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ManagerForm managerForm = (ManagerForm) form; //将接收到的表单信息强制转换成ActionForm类型 managerForm.setAd_name(managerForm.getAd_name()); managerForm.setAd_pwd(managerForm.getAd_pwd()); int ret = managerDAO.checkManager(managerForm); System.out.print("验证结果ret的值:" + ret); if (ret == 1) { //将登录到系统的管理员名称保存到session HttpSession session = request.getSession(); session.setAttribute("manager", managerForm.getAd_name()); return mapping.findForward("managerLoginok"); } else { request.setAttribute("error", "您输入的管理员名称或密码错误!"); return mapping.findForward("error"); } } } ``` //ConnDB.java ``` //执行查询语句 public ResultSet executeQuery(String sql) { try { conn=getConnection(); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); } catch(SQLException ex){ System.err.println(ex.getMessage()); } return rs; } ``` //ManagerDAO.java ``` //管理员身份验证 public int checkManager(ManagerForm managerForm) { int flag = 0; ChStr chStr=new ChStr(); String sql = "SELECT * FROM Ad_info where ad_name='" + chStr.filterStr(managerForm.getAd_name()) + "'"; ResultSet rs = conn.executeQuery(sql); try { if (rs.next()) { String pwd = chStr.filterStr(managerForm.getAd_pwd()); //获取输入的密码并过滤输入字符串中的危险字符 if (pwd.equals(rs.getString(3))) { flag = 1; } else { flag = 0; } }else{ flag = 0; } } catch (SQLException ex) { flag = 0; }finally{ conn.close(); } return flag; } ``` 大概应该是这几段代码的原因,但是不清楚应该怎么修改,请帮忙看一下
JSP页面无法显示数据库信息???求助啊!有图有代码,求大神雪中送炭
JSP页面显示这样:![图片说明](https://img-ask.csdn.net/upload/201504/20/1429541114_426572.png) JSP代码: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../base.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>新闻类型列表</title> <style type="text/css"> body{ background-image: url("images/bg_newsDetailList1.jpg"); background-position:-100px -300px; } .enableStyle{ background-color: ; color:black; } .disableStyle{ background-color: red; color: white; } </style> <script type="text/javascript"> function checkSelected(){ var flag=false; var ids=document.getElementsByName("ids"); for(var i=0;i<ids.length;i++){ if(ids[i].checked){ flag=true; break; } } if(!flag){ alert("请选择需要删除的数据!"); }else{ if(confirm("确定要删除选中的数据吗?")){ document.myform.submit(); } } } </script> </head> <body> <form name="myform" method="post" action="newstypeservlet?op=batchDelete"> <table border="1"> <tr> <th>编号</th> <th>类型名</th> <th>编辑</th> <th>删除</th> </tr> <c:forEach items="${requestScope.newsTypeList }" var="newsType" varStatus="status"> <tr style="background-color: ${status.index%2==0?'red':'green' } "> <td> <input type="checkbox" name="ids" value="${newsType.id }"/> ${newsType.id } </td> <td>${newsType.typeName }</td> <td><a href="newstypeservlet?op=toEdit&id=${newsType.id }">编辑</a></td> <td><a href="newstypeservlet?op=delete&id=${newsType.id }">删除</a></td> </tr> </c:forEach> <tr> <td colspan="4" > <input type="button" value="批量删除" onclick="checkSelected()"/> </td> </tr> </table> </form> </body> </html> ``` 其中base.jsp代码如下: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href="<%=basePath %>" /> ``` Servlet代码: ``` protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // System.out.println("进入sevlet"); request.setCharacterEncoding("UTF-8");// 解决Post提交时的乱码问题 String op = request.getParameter("op");// 注意:此处的JSP页面不放在根目录下,Servlet就无法接收到页面传来的数据,因为web.xml配置信息无法覆盖 if ("add".equals(op)) { addNewsType(request, response); } else if ("list".equals(op)) { listNewsType(request, response); } else if ("batchDelete".equals(op)) { batchDelete(request, response); } else if ("delete".equals(op)) { deleteById(request, response); } } // 新闻列表 private void listNewsType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { NewsTypeService newsTypeService = new NewsTypeService(); List<NewsType> newsTypeList = newsTypeService.findAll(); request.setAttribute("newsTypeList", newsTypeList); request.getRequestDispatcher("../listNewsType.jsp").forward(request, response); } private void deleteById(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); String idStr = request.getParameter("id"); if (idStr == null || "".equals(idStr)) { out.write("<script>alert('密码不能为空');history.back();</script>"); return; } int id = Integer.parseInt(idStr); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.delete(id); // 删除数据后,返回列表 listNewsType(request, response); } private void batchDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] ids = request.getParameterValues("ids"); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.batchDelete(ids); // 删除数据后,返回列表 listNewsType(request, response); } ``` service代码: ``` package com.syf.service; import java.util.List; import com.syf.dao.NewsTypeDao; import com.syf.entity.NewsType; public class NewsTypeService { public int save(NewsType newsType) { return new NewsTypeDao().save(newsType); } public int batchDelete(String[] ids) { return new NewsTypeDao().batchDelete(ids); } public List<NewsType> findAll() { return new NewsTypeDao().findAll(); } public int delete(int id) { return new NewsTypeDao().delete(id); } } ``` DAO层代码: ``` package com.syf.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.syf.entity.NewsType; import com.syf.util.ArrayUtil; import com.syf.util.DBUtil; public class NewsTypeDao { DBUtil dbUtil = new DBUtil(); // 保存新闻类型 public int save(NewsType newsType) { String sql = "insert into newstype(typeName) values (?)"; Object[] params = { newsType.getTypeName() }; return dbUtil.executeUpdate(sql, params); // executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数) } public List<NewsType> findAll() { List<NewsType> newsTypeList = new ArrayList<NewsType>(); String sql = "select * from newstype"; ResultSet rs = dbUtil.executeQuery(sql, null); try { while (rs.next()) { NewsType newsType = new NewsType(rs.getInt("id"), rs.getString("typeName")); newsTypeList.add(newsType);// 将对象放入到集合 } } catch (SQLException e) { e.printStackTrace(); return newsTypeList; } finally { dbUtil.closeAll(); } return newsTypeList; } /** * 批量删除 * * @param ids * 指定的ID集合 * @return */ public int batchDelete(String[] ids) { // TODO Auto-generated method stub String sql = "delete from newstype where id in(?)"; Object[] params = { ArrayUtil.array2String(ids, ",") }; return dbUtil.executeUpdate(sql, params); } /** * 根据Id进行删除 * * @param id * @return */ public int delete(int id) { String sql = "delete from newsType where id=?"; Object[] params = { id }; return dbUtil.executeUpdate(sql, params); } } ``` entity实体类代码: ``` package com.syf.entity; public class NewsType { private int id; private String typeName; public NewsType() { super(); } public NewsType(String typeName) { super(); this.typeName = typeName; } public NewsType(int id, String typeName) { super(); this.id = id; this.typeName = typeName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTypeName() { return typeName; } public void setTypeName(String typeName) { this.typeName = typeName; } } ```
上传图片,如何请求转发到动态ip的服务器上
我的需求是: 通过网页或者手机通过http post上传一个图片,后台servlet接收到该HttpServletRequest实例后,根据一个工具类算法获取到处理给请求的服务器ip,然后将这个http request发送给该ip的服务器。 然后由该ip的服务器获取到网页或者手机上传的图片,存储到该服务器的本地磁盘上。 请问该怎样实现请求的转发呢? 我曾经考虑过使用jsp的forward,但forward只能转发到当前的servlet容器,而不能转发到其他ip的servlet. 我也考虑到用httpclient,但网上查到的例子,httpclient只能添加静态请求参数,而用户通过网页上传的图片跟填写的String还不一样,所以不确定httpclient是否可以实现我的需求。 或者哪位高手有更好的建议吗?请指点,多谢! 附:网页这样请求: <form action="/pic/uploadPic" enctype="multipart/form-data" method="post"> <table class="gridtable"> <tr> <th>select pic:</th> <td><input type="file" name="myfile" value="browse"></td> </tr> </table> <p><input type="submit" value="submit"></p> </form>
JSP搜索联想框,新手求指教。
不是用的SSH框架,DAO用JDBC,项目赶工,DAO和Service整合在了一起,我是半路插入的~各位大神先别吐槽……咱先把问题解决再美化~谢谢 页面结构如下 ``` <input name="accountName" id="accountName" class="yhgl_ser required inputElem" onkeyup="getLinkData();" value="<%StringHelper.filterHTML(out, request.getParameter("accountName"));%>" /> <div id="popup" style="position: absolute;"> <table width="100%" bgcolor="#fffafa"> <tbody id="popupBody"></tbody> </table> </div> ``` JS代码如下(借鉴了很多网上的JS方法) ``` <script type="text/javascript"> function getLinkData() { var popupDiv = document.getElementById("info");//获得对应的div对象 var popupBody = document.getElementById("popupBody");//获得对应的tbody对象 var linkDataProperty = document.getElementById("accountName"); //获得对应的输入框对象 clearModels();//清除联想输入提示框的内容 //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "<%configureProvider.format(out, URLVariable.SEARCH_ACCOUNT);%>", data:{linkDataProperty:linkDataProperty.value},//从前台传递到后台的查询语句的参数 dataType : "json", //从Action中返回的数据的类型为json类型的 error:function(){ alert("没有对应的数据,请查看输入的查询条件!"); }, success : function(data) {//当Ajax提交成功时调用的方法 if(data.length==0){return;} setOffsets();//设置联想输入下拉列表提示框的位置 var tr,td,text; for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容 text = document.createTextNode(data[i].linkDataProperty);//从Action中返回的数据中取出linkDataProperty的值 td = document.createElement("td");//创建一个td的对象 tr = document.createElement("tr");//创建一个tr的对象 td.mouseOver = function(){this.className="mouseOver;"}; td.mouseOut = function(){this.className="mouseOut;"}; td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel td.appendChild(text); tr.appendChild(td); popupBody.appendChild(tr); } }}); //点击下拉列表中的某个选项时调用的方法 function populateModel(cell) { clearSelect(); linkDataProperty.value = cell.firstChild.nodeValue; //initOtherData(linkDataProperty.value);利用输入框中的数据调用其他方法,初始化其他数据 clearModels();//清除自动完成行 } //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的 function clearModels() { while (popupBody.childNodes.length > 0) { popupBody.removeChild(popupBody.firstChild); } popupDiv.style.border = "none"; } //设置下拉列表的位置和样式 function setOffsets() { var width = linkDataProperty.offsetWidth;//获取linkDataProperty输入框的相对宽度 var left = getLeft(linkDataProperty); var top = getTop(linkDataProperty) + linkDataProperty.offsetHeight; popupDiv.style.border = "black 1px solid"; popupDiv.style.left = left + "px"; popupDiv.style.top = top + "px"; popupDiv.style.width = width + "px"; } //获取指定元素在页面中的宽度起始位置 function getLeft(e) { var offset = e.offsetLeft; if (e.offsetParent != null) { offset += getLeft(e.offsetParent); } return offset; } //获取指定元素在页面中的高度起始位置 function getTop(e) { var offset = e.offsetTop; if (e.offsetParent != null) { offset += getTop(e.offsetParent); } return offset; } } //清空输入框中的数据 function clearSelect() { var linkDataProperty=document.getElementById(linkDataProperty); linkDataProperty.value=""; } </script> ``` Servlet代码如下 ``` protected void processPost(HttpServletRequest request, HttpServletResponse response, ServiceSession serviceSession) throws Throwable { //往后传数据 System.out.println("进入servlet,将传入后台:"+request.getParameter("accountName")); //获得DAO服务 ZhglManage manage = serviceSession.getService(ZhglManage.class); //获得前台数据并往后台发送,同时接收返回的结果 String accounts = manage.searchAccountInOneResult(request.getParameter("accountName")); //往前端发送 PrintWriter out = response.getWriter(); System.out.println("返回servlet,即将返回获得的结果:"+accounts+" 给页面"); out.print(accounts); out.close(); } ``` DAO加Service代码如下: ``` public String searchAccountInOneResult(String inputing) throws Throwable { //尝试了Gson但也没成功 Gson gson = new Gson(); System.out.println("进入DAO,传入的参数是:"+inputing); //map方式 Map<String, String> rsMap = new HashMap<String,String>(); String account = ""; String key = ""; //获得连接 Connection conn = getConnection(); //准备SQL语句,获得单列账号信息 String sql = "SELECT @ROW := @ROW +1 AS ROW , t.F02 AS accountName FROM S61.T6110 t, ( SELECT @ROW :=0 )r WHERE t.F02 LIKE '"+inputing+"%' LIMIT 10"; PreparedStatement pstm = conn.prepareStatement(sql); //执行SQL ResultSet rs = pstm.executeQuery(); //获得结果 while(rs.next()){ //map方式 key = rs.getString("accountName"); account = rs.getString("accountName"); rsMap.put(key, account); } String temp = gson.toJson(rsMap); System.out.println("正在打印gson:"+temp); return temp; } ``` 然后控制台是这样的 进入servlet,将传入后台:1 进入DAO,传入的参数是:1 正在打印gson:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 返回servlet,即将返回获得的结果:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 给页面 firefox控制台和页面效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431943341_591979.png) 我对JS什么的不怎么懂,来请教下各位我哪里有问题,解决方法或者说解决思路应该是怎样的
请大佬们看看我上传图片到本地项目然后数据库保存路劲为null是那部分出错了?
接收图片的jsp前端页面 ``` <form method="post" action="PicUpServlet" enctype="multipart/form-data"> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> <legend>添加文章</legend> </fieldset> <div class="layui-form-item layui-form-text" > <div class="layui-input-block" style="margin-left: 0px;"> <textarea placeholder="请输入内容" class="layui-textarea"></textarea> </div> </div> <!-- <input type="text" name="content" /><br/> --> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;" > <legend>添加图片</legend> </fieldset> <div style="margin-left: 8px;"> <input type="file" name="uploadFile"/> </div> <br/><br/> <div style="margin-left: 8px;"> <input type="submit" value="上传" /> </div> </form> ``` 文件保存 ``` package com.gugu.servlet; import java.io.File; import java.io.IOException; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.gugu.dao.WisUploadDao; import com.gugu.pojo.GgNote; import com.gugu.util.Upload; public class PicUpServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static final String UPLOAD_DIRECTORY = "C:\\MyBlog-master\\WebContent\\images"; public PicUpServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String path = UPLOAD_DIRECTORY+"//images//"+File.separator ; Map<String, String> map = Upload.upload(request, 1024 * 1024 * 10, path); String newFileName ="images"+File.separator+ map.get("newFileName"); GgNote note = new GgNote(); note.setNoteContent(map.get("content")); note.setNotePhoto(newFileName); System.out.println(newFileName); System.out.println(map.get("content")); WisUploadDao add = new WisUploadDao(); add.addwis(note); response.sendRedirect("page/whisper/manage.jsp"); } } ``` 判断文字还是图片 ``` package com.gugu.util; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.oreilly.servlet.multipart.FilePart; import com.oreilly.servlet.multipart.MultipartParser; import com.oreilly.servlet.multipart.ParamPart; import com.oreilly.servlet.multipart.Part; public class Upload { public static Map<String, String> upload(HttpServletRequest request,int maxSize, String path) { //以map形式保存数据 key对应保存的是获取界面上的name名称 value保存的是获取界面上的name对应的值 Map<String, String> map = new HashMap<String, String>(); Part part = null; try { MultipartParser mrequest = new MultipartParser(request, maxSize); mrequest.setEncoding("utf-8"); //遍历所有的part组 while ((part = mrequest.readNextPart()) != null) { if (part.isFile()) { //判断是否是文件 FilePart filepart = (FilePart) part;//转化成文件组 String fileName = filepart.getFileName();//得到文件名 if (fileName != null && fileName.length() > 0) { // 取得扩展名 String fileExtName = fileName.substring( fileName.lastIndexOf(".") + 1).toLowerCase(); // 只上传图片 //判断图片上传的格式是否符合 后缀名是否有效 if (fileExtName.equalsIgnoreCase("jpeg") || fileExtName.equalsIgnoreCase("png") || fileExtName.equalsIgnoreCase("jpg") || fileExtName.equalsIgnoreCase("gif") || fileExtName.equalsIgnoreCase("ico") || fileExtName.equalsIgnoreCase("bmp") || fileExtName.equalsIgnoreCase("flv") || fileExtName.equalsIgnoreCase("mp4") || fileExtName.equalsIgnoreCase("mp3")) { /*String newFileName = new Date().getTime() + "."+ fileExtName;//重新改文件名 文件名+扩展名 */ String newFileName =new Date().getTime() +fileName;//不改图片名字 String newPath = path + "/" + newFileName; //文件处理文件上传的路径 File newFile = new File(newPath); filepart.writeTo(newFile); //将文件真正写入到对应的文件夹中 //filepart.getName() 得到 request 要接收的参数的名字 map.put("newFileName", newFileName); map.put(filepart.getName(), newFileName);//把文件信息保存到map中 map.put("newFile", newFile.toString()); } else { map.put("geshi", "geshi"); continue; }// 说明上传的不是图片 } else { map.put("yes","yes"); continue; // 说明没有选择上传图片 } } else if (part.isParam()) { //判断是否是参数 ParamPart paramPart = (ParamPart) part; map.put(paramPart.getName(), paramPart.getStringValue()); } } } catch (IOException e) { e.printStackTrace(); } return map; } } ``` 上传到数据库的文字内容为null 图片保存路劲也为null请问是那部分出错了 控制台报错 ``` java.io.FileNotFoundException: C:\Users\12874\Desktop\毕业设计\MyBlog-master\WebContent\images\images\1572883296157tony_tony_chopper-006.jpg (系统找不到指定的路径。) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at com.oreilly.servlet.multipart.FilePart.writeTo(FilePart.java:166) at com.gugu.util.Upload.upload(Upload.java:50) at com.gugu.servlet.PicUpServlet.doPost(PicUpServlet.java:40) at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) images\null null ```
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
JSON解析——net.sf.json.JSONObject
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
计算机网络的核心概念
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 ISP 和本地以及家庭网络是如何交换信息的呢?...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
程序员如何通过造轮子走向人生巅峰?
前言:你所做的事情,也许暂时看不到成果。但不要灰心,你不是没有成长,而是在扎根。 程序员圈经常流行的一句话:“不要重复造轮子”。在计算机领域,我们将封装好的组件、库,叫做轮子。因为它可以拿来直接用,直接塞进我们的项目中,就能实现对应的功能。 有些同学会问,人家都已经做好了,你再来重新弄一遍,有什么意义?这不是在浪费时间吗。 殊不知,造轮子是一种学习方式,能快速进步,造得好,是自己超强能力的表...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
立即提问