servlet获取不到jsp页面的数据

jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>



    <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/common.css">
    <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/register.css">
</head>

<script src="<%=request.getContextPath()%>/js/jquery.js"></script>
<script src="<%=request.getContextPath()%>/js/register.js"></script>


<body>
    <div class="top">
        <div class="banner">
            <div class="icon">
                <img src="<%=request.getContextPath()%>/img/otherimg/1.jpg" />
            </div>
            <div class="title">
                <span>欢迎注册广购书页!尽享多重优惠服务</span>
            </div>
            <div class="dologin">
                <span>已有账号<a href="#">请登陆</a></span>
            </div>
        </div>
    </div>

    <div class="clear"></div>

    <div class="registerform banner">
        <form action="ReServlet" method="post">
            <div class="emailbox">
                <div class="email">
                    <span>邮    箱:</span>
                    <input type="text" name="email"/>
                </div>
                <span class="alertSpan">email地址不能为空</span>
            </div>

            <div class="pwdbox">
                <div class="pwd">
                    <span>设置密码:</span>
                    <input type="text" name="pwd"/>
                </div>
                <span class="alertSpan">您的密码可以由大小写英文字母、数字组成,长度6-16</span>
            </div>

            <div class="repwdbox">
                <div class="repwd">
                    <span>确认密码:</span>
                    <input type="text" name="repwd"/>
                </div>
                <span class="alertSpan">您输入的密码不一样,请重新输入!</span>
            </div>

            <div class="telbox">
                <div class="tel">
                    <span>手机号码:</span>
                    <input type="text" name="tel"/>
                </div>
                <span class="alertSpan">温馨提示:填写手机号码后将收到我们的促销短信、发货通知!</span>
            </div>

            <div class="codebox">
                <div class="code">
                    <span>验证码:</span>
                    <input type="text" name="code" style="width:130px"/>
                </div>
                <div class="codedetail">
                    <img alt="占位" src="<%=request.getContextPath()%>/img/otherimg/1.jpg"/>
                    <a href="#">换一张</a>
                </div>
            </div>

            <div class="clear"></div>

            <div class="submitform">
                <input type="submit" value="立即注册"/>
            </div>
        </form>
    </div>
</body>

servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;utf-8");

    //System.out.println("shenmegui");

    String email = request.getParameter("email");
    System.out.println(email);

    response.getWriter().write("xxx");
}

3个回答

请求到达servlet了吗

请先看一下你的from表单提交的路径,《form action="ReServlet" method="post"》 ReServlet这是啥?路径这么写么

1.servlet 映射路径是否为:ReServlet
2.method="post" 提交的是doPost 你在doGet里面写的函数体。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsp页面调用Servlet后进入Servlet页面空白不跳转了
各位大大,小弟正在用java做毕业设计,遇到一个问题,就是想实现获取页面的学生姓名sname和学号sno,然后到数据库中执行查询,将这个学生的成绩从数据库中输出到新的页面。可是,问题来了:在查询页面点击提交按钮后,页面跳转到ChengjiServlet2页面,web浏览器就一片空白,在ChengjiServlet2页面的sendRedirect也没了作用。。。希望各位大大们看在我操心做毕业设计的份儿上帮帮我吧,说白了就是一个查询输出,望大大们指点!跪谢!! //查询页面,jsp。放在一个文件夹里。路径没出错 不支持直接使用html标签,所以我改了一下 《body》 《form id="form1" name="chengjiFrom" method="post" action="../ChengjiServlet2"》《h1 align="center"》成绩查询页面《/h1》 《p>姓名: 《input name="sname" type="text" id="sname" /> 《/p> 《p>学号: 《input name="sno" type="text" id="sno" /> 《/p> 《p> 《input type="submit" name="Submit" value="查询成绩" /> 《/p> 《/form> 《/body> >//这是我编写的ChengjiServlet2类 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List chengji = new ArrayList(); //获取chengjichaxun.jsp页面的各个控件属性 String Sname = request.getParameter("sname"); String Sno = request.getParameter("sno"); String SelectScore = request.getParameter("select"); ChengjiSQLUtil chengjiSql = new ChengjiSQLUtil(); Connection conn =null; Statement stmt=null; ResultSet rs = null; conn = chengjiSql.getConn_Bendi(); try { if(SelectScore.equals("score_1")) { //创建Statement实例,并执行sql语句 String sql = "SELECT * FROM 'renwu'.'score_da1' where sno='"+Sno+"' and sname='"+Sname+"'"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()) { String sno = rs.getString("sno"); String sname = rs.getString("sname"); String ke1_a = rs.getString("ke1_a"); String ke1_b = rs.getString("ke1_b"); String ke1_c = rs.getString("ke1_c"); String ke1_d = rs.getString("ke1_d"); String ke1_e = rs.getString("ke1_e"); String ke1_f = rs.getString("ke1_f"); chengji.add(sno); chengji.add(sname); chengji.add(ke1_a); chengji.add(ke1_b); chengji.add(ke1_c); chengji.add(ke1_d); chengji.add(ke1_e); chengji.add(ke1_f); } HttpSession session = request.getSession(); session.setAttribute("score", chengji); response.sendRedirect("chaxun_chengji/chengji_jieguo.jsp"); } else if(SelectScore.equals("score_2")) { String sql = "SELECT * FROM 'renwu'.'score_da2' where sno='"+Sno+"' and sname='"+Sname+"'"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()) { String sno = rs.getString("sno"); String sname = rs.getString("sname"); String ke2_a = rs.getString("ke2_a"); String ke2_b = rs.getString("ke2_b"); String ke2_c = rs.getString("ke2_c"); String ke2_d = rs.getString("ke2_d"); String ke2_e = rs.getString("ke2_e"); String ke2_f = rs.getString("ke2_f"); chengji.add(sno); chengji.add(sname); chengji.add(ke2_a); chengji.add(ke2_b); chengji.add(ke2_c); chengji.add(ke2_d); chengji.add(ke2_e); chengji.add(ke2_f); } HttpSession session = request.getSession(); session.setAttribute("score", chengji); response.sendRedirect("chaxun_chengji/chengji_jieguo.jsp"); } else if(SelectScore.equals("score_3")) { String sql = "SELECT * FROM 'renwu'.'score_da3' where sno='"+Sno+"' and sname='"+Sname+"'"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()) { String sno = rs.getString("sno"); String sname = rs.getString("sname"); String ke3_a = rs.getString("ke3_a"); String ke3_b = rs.getString("ke3_b"); String ke3_c = rs.getString("ke3_c"); String ke3_d = rs.getString("ke3_d"); String ke3_e = rs.getString("ke3_e"); String ke3_f = rs.getString("ke3_f"); chengji.add(sno); chengji.add(sname); chengji.add(ke3_a); chengji.add(ke3_b); chengji.add(ke3_c); chengji.add(ke3_d); chengji.add(ke3_e); chengji.add(ke3_f); } HttpSession session = request.getSession(); session.setAttribute("score", chengji); response.sendRedirect("chaxun_chengji/chengji_jieguo.jsp"); } else if(SelectScore.equals("score_4")) { String sql = "SELECT * FROM 'renwu'.'score_da4' where sno='"+Sno+"' and sname='"+Sname+"'"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while(rs.next()) { String sno = rs.getString("sno"); String sname = rs.getString("sname"); String ke4_a = rs.getString("ke4_a"); String ke4_b = rs.getString("ke4_b"); String ke4_c = rs.getString("ke4_c"); String ke4_d = rs.getString("ke4_d"); String ke4_e = rs.getString("ke4_e"); String ke4_f = rs.getString("ke4_f"); chengji.add(sno); chengji.add(sname); chengji.add(ke4_a); chengji.add(ke4_b); chengji.add(ke4_c); chengji.add(ke4_d); chengji.add(ke4_e); chengji.add(ke4_f); } HttpSession session = request.getSession(); session.setAttribute("score", chengji); response.sendRedirect("chaxun_chengji/chengji_jieguo.jsp"); } }catch(Exception e) { e.printStackTrace(); }finally { chengjiSql.releaseResources(conn, stmt, rs); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } > //这块是web.xml的相关信息 <servlet> <servlet-name>chengjiServlet2</servlet-name> <servlet-class>org.afan.course.servlet.ChengjiServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>chengjiServlet2</servlet-name> <url-pattern>/chengjiServlet2</url-pattern> </servlet-mapping> //这块是查询成功后要跳转的页面代码,目前还没能走到这个页面。我用list将数据输出,因为不会其他的将java类查询结果输出到jsp页面的方法。。 《body><P>成绩情况</P> 《table> <% List list = (List)session.getAttribute("score"); for(int i=0;i<list.size();i++) { out.print("成绩:" + list.get(i) + "<br/>"); } %> 《/table> 《/body>
servlet里存储数据的list,用<c:forEach>方法一直显示不到jsp页面
servlet: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); //获取所有的书本 List<Book> list=new ArrayList<Book>(); list=BookDB.findALLBook(); request.setAttribute("list", list); request.getRequestDispatcher("/main.jsp").forward(request, response); } ``` jsp: ```<c:forEach items="${list}" var="item"> ${item.bookId} ${item.bookName} ${item.bookPrice}<br/> </c:forEach>
servlet 获取到的值在数据库中查不到,怎么让他跳转页面?
response.sendRedirect("index.jsp"); 这样的不可以。。。而且感觉是要传入值后跳转、
表单提交数据之后,JSP页面获取不到,这是什么问题呢?
<from action="research.jsp" method="post"> 请输入你的id号:<input type="text" name="id"><br> <input type="submit" value="提交"> </from> <body> 以下是research.jsp页面的内容 你要查询的数据是: <% Model model=new Model(); int id=Integer.parseInt(request.getParameter("id")); User user=model.load(id); out.print(user.getId()+" "+user.getName()+" "+user.getPassword()); %> 报错信息: 严重: Servlet.service() for servlet [jsp] in context with path [/TestProject] threw exception [java.lang.NumberFormatException: null] with root cause java.lang.NumberFormatException: null
请教一个在MVC模式下获取访问者IP的实现方法
有这样一个需求,很简单,就是用户访问网页时,获取到用户的IP,并写入数据库。 以前用model1模式开发时,很容易实现,就是在JSP中用request.getRemoteAddr()获取用户IP地址后,调用一个bean中的方法(将刚才获取的IP作为参数),直接写入数据库就可以了。 但现在用MVC模式开发,那么写入数据库的操作都在DAO层实现,是JSP-->SERVLET-->SERVICE-->DAO这种调用关系,也就是理论上JSP不能直接调用DAO中的写入数据库操作了(也不能直接调用SERVICE),而是要通过调用SERVLET来间接实现。 那么难道是在JSP加载页面时,在js的onload中调用SERVLET(SERVLET-->SERVICE-->DAO)来实现将用户IP写入数据库的操作吗? 请大神指点,谢谢!
javaweb如何实现点击商品页面跳转到本商品的详情页面
以上是jsp页面的代码,我是通过将从数据库获取到的所有商品封装到一个list集合中,使用request域存储数据,在jsp页面使用el获取的所有商品。我现在能否在这个基础上面实现点击商品,进入到本商品的详情界面,页面已经写好了。我自己的实现逻辑是:通过某个域存储商品的id信息,在servlet中获取到,去数据库中查找这件商品的所有信息,这个商品存这储到域空间中,在新的页面通过el获取,但是目前我无法实现将这个商品的id信息传存储到域空间中。我不知道这样能不能实现,是不是我的想法有错误,希望大神帮个忙!!! ``` <c:forEach items="${productList }" var="product"> <div class="col-md-2" style="height:250px"> <a href="product_info.htm"> <img src="${pageContext.request.contextPath }/${product.pimage }" width="170" height="170" style="display: inline-block;"> </a> <p> <a href="/WEB18/productOne" style='color: green'>${product.pname }</a> </p> <p> <font color="#FF0000">商城价:&yen;${product.shop_price }</font> </p> </div> </c:forEach> ``` 上面是所有商品的jsp页面的代码。
struts2 我在jsp页面中获取到了list集合中的对象但是就是不显示值
我用struts2在jsp中遍历了一个集合,集合中也有数据就是没法显示,如果用el表达式取对象 可以打印出来,但是取对象的属性就报错 先上代码 // action层 @Controller public class NreportAction extends BaseAction { /** * 内部审计S相关的封装 */ @Resource private NreportService nreportService; // 内审service private List<Nreport> nreportList; private Nreport nreport; public NreportAction(){ System.out.println("进来了"); } // 内审填报页面 public String addUI(){ System.out.println("时空裂缝"); try { // System.out.println("1.先查出上一年没有完成的任务"); // System.out.println("2.查询出纪检监察室下发状态 , 如果下发了,就显示一条记录,让下级部门填写"); nreportList = nreportService.findNotDoPro(); if(nreportList!=null && nreportList.size()>0){ System.out.println("上一年未完成的项目有"+nreportList.size()+"个"); } } catch (Exception e) { System.out.println(e.getMessage()); } return "reportUI"; } DAO层 public class NreportDaoImpl extends BaseDaoImpl<Nreport> implements NreportDao { @Override public List<Nreport> findNotDoPro() { Calendar c=new GregorianCalendar();//新建日期对象 int year=c.get(Calendar.YEAR);//获取年份 int month=c.get(Calendar.MONTH);/ // 获取当前年份 int year=c.get(Calendar.YEAR); // sql语句 select proid from record where state=1 and (year like '%2015%') // 从【记录表】查询 出上一年没有完成的记录,然后根据记录从【内部表】查出项目的List List list = getSession().createSQLQuery( "select proid from record where state=0 and deptType = '内部审计' and (year like \'%" + String.valueOf(year-1) + "%\')").list(); // 遍历List然后根据这个id来去查找林外一张表 String sql = "select * from nreport where nid in("; for(int i=0;i<list.size();i++){ // sql = "where id in(1,2,3)"; // 如果当前获取的这个id不是最后一个id,那么加上‘,’ if(list.get(i)!= list.get(list.size()-1)){ sql+=list.get(i)+","; }else{ sql+=list.get(i)+")"; } } System.out.println(sql+"看看sql长啥样"); // 从【内部表】查出未完成项目的List List<Nreport> list2= getSession().createSQLQuery(sql).list(); return list2; } } jsp <form action="" method="post" enctype="multipart/form-data"> <table width="100%" border="0"> <tr class="t_tit"> <td width="40" align="center">序号</td> <td width="80" align="center">项目名称</td> <td width="80" align="center">审计类型</td> <td width="40" align="center">送审金额</td> <td width="40" align="center">预计审计费</td> <td width="160" align="center">预计审计时间</td> <td width="140" align="center">经费来源</td> <td width="100" align="center">资金性质</td> <td width="60" align="center">状态</td> <td width="60" align="center">备注</td> <td width="60" align="center">删除</td> </tr> <!-- 如果有上一年的已经启动但是没有完成的计划也显示在这里 --> <s:iterator value="nreportList" status="st"> ${nreportList[0] } <s:if test="nreportList!=null"> <tr <s:if test="#st.odd">bgcolor="f8f8f8"</s:if> > <td align="center"><s:property value="nid"/></td> <td align="center"><s:property value="proname"/></td> <td align="center"><s:property value="audittype"/></td> <td align="center"><s:property value="ssmoney"/></td> <td align="center"><s:property value="expeauditmoney"/></td> <td align="center"><s:property value="expeaudittime"/></td> <td align="center"><s:property value="moneyfrom"/></td> <td align="center"><s:property value="moneyfunds"/></td> <td align="center"><s:property value="state"/></td> <td align="center"><s:property value="memo"/></td> </tr></s:if> <s:else>没数据?</s:else> </s:iterator> 如果我 我jsp中写成上面这样 ${nreportList[0] } 就会输出toString格式的对象 [Ljava.lang.Object;@20d77d7d 如果写成 ${nreportList[0].getNid }就报错 错误信息: 十一月 17, 2016 5:09:16 下午 org.apache.catalina.core.ApplicationDispatcher invoke 严重: Servlet.service() for servlet jsp threw exception java.lang.NumberFormatException: For input string: "getNid" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at javax.el.ArrayELResolver.coerce(ArrayELResolver.java:161) at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:45) ... ... 页面显示出来表格了,是迭代出来的就是没有数据,都是空的格子 ![图片说明](https://img-ask.csdn.net/upload/201611/17/1479374227_31350.jpg) 求大神指导怎么才能迭代出来数据??? 没有C币 , 下次有了一定加倍赏。。。
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; } ``` 大概应该是这几段代码的原因,但是不清楚应该怎么修改,请帮忙看一下
java的PrintWriter对象的print和write方法的区别?
PrintWriter对象的print和write方法的区别? PrintWriter out = response.getWriter(); out.print("数据"); out.write("数据"); 我在servlet中用print输出的东西,jsp页面能接受到,而用write输出就接受不到东西,这有什么区别呢? 我主要想知道write 和 print 这两个方法在servlet 中输出的东东,在jsp 都能获取吗?
ajax一直不进入success:function()总是提示获取不到数据
public class UserDaoImpl implements UserDao { @Override public User login(User user) { Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { con = BaseDao.getCon(); String sql = "select * from user where name=? and password=?"; ps = con.prepareStatement(sql); ps.setString(1, user.getName()); ps.setString(2, user.getPassword()); rs = ps.executeQuery(); User users; if (rs.next()) { users = new User(); System.out.println(); users.setId(rs.getInt("id")); users.setName(rs.getString("name")); users.setPassword(rs.getString("password")); users.setEmail(rs.getString("email")); users.setPhone(rs.getString("phone")); users.setMoney(rs.getString("money")); return users; } else { return null; } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } @Override public boolean register(User user) { String sql = "insert into user values(0,?,?,?,?,?) "; List<Object> list = new ArrayList<Object>(); list.add(user.getName()); list.add(user.getPassword()); list.add(user.getEmail()); list.add(user.getPhone()); list.add(user.getMoney()); boolean flag = BaseDao.addUpdateDelete(sql, list.toArray()); if (flag) { return true; } else { return false; } } public ArrayList<User> query() { Connection con = null; ArrayList<User> barArr = new ArrayList<User>(); try { con = BaseDao.getCon(); PreparedStatement stmt = con.prepareStatement("select * from user"); ResultSet rs = stmt.executeQuery(); while (rs.next()) { User bar = new User(); bar.setName(rs.getString("name")); bar.setMoney(rs.getString("money")); barArr.add(bar); } con.close(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return barArr; } } @WebServlet("/user/userlogin") public class UserLoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { User user = new User(); // 获取login.jsp页面提交的账号和密码 String name = request.getParameter("name"); String password = request.getParameter("password"); String money=request.getParameter("money"); // 测试数据 System.out.println(name + " " + password+" "+money); // 获取login.jsp页面提交的账号和密码设置到实体类User? user.setName(name); user.setPassword(password); HttpSession session = request.getSession(); // 引入数据交互层 UserDao dao = new UserDaoImpl(); User us = dao.login(user); // 测试返回的值 System.out.println(us); if (us != null) { session.setAttribute("user", user); request.getRequestDispatcher("/index/echarts.jsp").forward(request, response); // request.setAttribute("info", "登录成功"); } else { request.setAttribute("info", "登录失败"); request.getRequestDispatcher("/index/info.jsp").forward(request, response); } UserDaoImpl barDao = new UserDaoImpl(); ArrayList<User> barArr = barDao.query(); response.setContentType("text/html; charset=utf-8"); JSONArray json = JSONArray.fromObject(barArr); System.out.println("得到的数据:"+json.toString()); PrintWriter writer = response.getWriter(); writer.println(json); writer.flush(); writer.close(); } } public class BaseDao { private static String driver; private static String url; private static String user; private static String password; private static String money; static { driver = ResourceBundle.getBundle("db").getString("driver"); url = ResourceBundle.getBundle("db").getString("url"); user = ResourceBundle.getBundle("db").getString("user"); password = ResourceBundle.getBundle("db").getString("password"); } public static Connection getCon() throws ClassNotFoundException, SQLException { Class.forName(driver); System.out.println("测试加载数据库成功"); Connection con = DriverManager.getConnection(url, user, password); System.out.println("测试数据库连接成功"); return con; } public static void close(Connection con, PreparedStatement ps, ResultSet rs) { if (rs != null) {// 关闭 try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (con != null) { try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static boolean addUpdateDelete(String sql, Object[] arr) { Connection con = null; PreparedStatement ps = null; try { con = BaseDao.getCon();// 第一步 :连接数据库的操作 ps = con.prepareStatement(sql);// 第二步:预编译 // 第三步:设置值 if (arr != null && arr.length != 0) { for (int i = 0; i < arr.length; i++) { ps.setObject(i + 1, arr[i]); } } int count = ps.executeUpdate();// 第四步:执行sql语句 if (count > 0) { return true; } else { return false; } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } } <%@page import="org.apache.catalina.connector.Request"%> <%@ 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" "http://www.w3.org/TR/html4/loose.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello ECharts</title> <!-- 使用单文件引入的方式使用ECharts.JS --> <script type="text/javascript" src="../scripts/echarts-all.js"></script> <script type="text/javascript" src="../scripts/jquery.js"></script> </head> <body> 您的用户名是: ${user.name} <div id="myDiv" style="height: 400px"></div> <script type="text/javascript"> function loadData(option) { $.ajax({ type : 'post', //传输类型 async : false, url : 'bar.do', //web.xml中注册的Servlet的url-pattern data : { "name" : name }, dataType : 'json', //返回数据形式为json success : function(result) { if (result) { option.legend.data = []; option.series[0].data = []; for (var i = 0; i < result.length; i++) { alert(result[i].name + "---" + result[i].money); option.legend.data.push(result[i].name); option.series[0].data.push({ name : result[i].name, value : result[i].money }); } myChart.setOption(option); } }, error : function(errorMsg) { alert("加载数据失败"+errorMsg); } });//AJAX }//loadData() var myChart = echarts.init(document.getElementById('myDiv')); var option = { title : { text : '某站点用户访问来源', subtext : '纯属虚构', x : 'center' }, tooltip : { trigger : 'item', formatter : "{a} {b} : {c} ({d}%)" }, legend : { orient : 'vertical', left : 'left', data : [] }, series : [ { name : '访问来源', type : 'pie', radius : '55%', center : [ '50%', '60%' ], data : [], itemStyle : { emphasis : { shadowBlur : 10, shadowOffsetX : 0, shadowColor : 'rgba(0, 0, 0, 0.5)' } } } ] }; //加载数据到option loadData(option); //设置option </script> </body>
servlet报错 一个用户登录页面
报错提示:HTTP method GET is not supported by this URL 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>大方网上书店登录界面</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 bgcolor="#87CEEB"> <br><br><br> <hr><hr> <form method="post" action="/loginServlet" > <p align="center" style="font-size:30px">用户名:<input style="font-size:30px" type="text" name="username"></p> <p align="center" style="font-size:30px">密 码:<input style="font-size:30px" type="password" name="password"></p> <p align="center" ><input style="font-size:30px;color:green" type="submit" value="登录" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input style="font-size:30px;color:blue" type="reset" value="重置" ></p> <hr><hr> <p align="center" style="font-size:30px"><a href="register.jsp">注册新用户</a></p> </form> </body> </html> servlet代码: package mysqlConnect; import java.io.IOException; import java.io.PrintWriter; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class loginServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; /** * Constructor of the object. */ /** * Destruction of the servlet. <br> */ @Override public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { @SuppressWarnings("unused") String resMsg; response.setContentType("text/html"); PrintWriter out = response.getWriter(); String username = request.getParameter("username"); // 从 request 中获取名为 username 的参数的值 @SuppressWarnings("unused") String password = request.getParameter("password"); // 从 request 中获取名为 password 的参数的值 try { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //连接到数据库bookstore Connection connection =(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore acterEncoding=utf-8"); //通过连接创建statement Statement statement =(Statement) connection.createStatement(); ResultSet rs=statement.executeQuery("select * from userlist where =用户名'"+username+"'"); if(!("username").equals(rs)){ // 如果用户名不存在 resMsg = "该用户名不存在,请检查后重新登录或注册新用户"; out.println("<a href='login.jsp' style='font-size:30px;color:red'>返回登录</a>"); } else{ response.sendRedirect("bookshow.jsp"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ // add this section } out.println(""); out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ @Override public void init() throws ServletException { // Put your code here } }
请大佬们看看我上传图片到本地项目然后数据库保存路劲为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 ```
file文件上传后返回上传到服务器的路径
jsp的file把文件上传到服务器后,如果不把上传后的路径写入数据库,那么要如何取到servlet里面的路径要在原页面中获取,或者转到action中的某个方法中获取,如果我用这个方法来传递参数到原页面![图片说明](https://img-ask.csdn.net/upload/201711/28/1511839311_419811.png),则最后返回原页面后,页面样式和内容全变了
jsp页面往后台存储时间类型数据时发生错误Unknown Source
主要问题是前台使用mobiscroll控件写入input控件后 使用form submit提交数据 后台servlet使用getParameter获取input控件值 转换格式后传输到数据库中。数据库字段为mysql的date类型 但是现在报错显示at java.text.SimpleDateFormat.parse(Unknown Source) at java.text.DateFormat.parse(Unknown Source 附上代码 servlet: ``` @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); System.out.println("进来了submit!!!!"); work worksubmit=new work(); HttpSession session = request.getSession(); worksubmit.sete_name("sjn"); //(String)session.getAttribute("username"); SimpleDateFormat dd = new SimpleDateFormat("yyyy-MM-dd");// 定义格式 String choosedate=dd.format(request.getParameter("txttest")); System.out.println(choosedate); Date chooseDate = null; try { chooseDate = dd.parse(choosedate); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } java.sql.Date sqlchooseDate = new java.sql.Date(chooseDate.getTime()); worksubmit.setw_date(sqlchooseDate);//change 日期格式 String testname=(String)request.getParameter("testname"); worksubmit.setw_title(testname); ///time 获得方式待写 int score =0; String content=(String)request.getParameter("feel");//心得内容 if(content != null) { score+=2; } worksubmit.setw_content(content); int achieve11=0; int achieve21=0; int achieve31=0; int achieve41=0; String achieve1=(String)request.getParameter("Fruit1"); String achieve2=(String)request.getParameter("Fruit2"); String achieve3=(String)request.getParameter("Fruit3"); String achieve4=(String)request.getParameter("Fruit4"); if (achieve1!= null) { score=score+2; achieve11=1; } if (achieve2!= null) { score=score+2; achieve21=1; } if (achieve3!= null) { score=score+2; achieve31=1; } if (achieve4!= null) { score=score+2; achieve41=1; } worksubmit.setachieve1(achieve11); worksubmit.setachieve2(achieve21); worksubmit.setachieve3(achieve31); worksubmit.setachieve4(achieve41); worksubmit.setw_score(score); DAOProxy DAOProxy=new DAOProxy(); try { if(DAOProxy.submit(worksubmit)){ request.getRequestDispatcher("worklist.jsp").forward(request,response);; return ; }else { return ; } } catch (Exception e) { e.printStackTrace(); } } ``` 前台jsp页面: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <title>日期选择</title> <!-- 引入JQ Mobile所需C2S --> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> <!-- 引入JQ 脚本文件提高对 JQmobile支持 --> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <!-- 引入JQ Mobile所需脚本文件 --> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> <!-- 引入mobiscroll插件 --> <script src="js/zepto.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.zepto.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.core.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.scroller.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.datetime.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.select.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.scroller.ios.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.scroller.android.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.scroller.android-ics.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.scroller.wp.js" type="text/javascript"></script> <script src="plugs/mobiscroll/js/mobiscroll.i18n.zh.js" type="text/javascript"></script> <link href="plugs/mobiscroll/css/mobiscroll.scroller.css" rel="stylesheet" type="text/css" /> <link href="plugs/mobiscroll/css/mobiscroll.scroller.sense-ui.css" rel="stylesheet" type="text/css" /> <!-- 配置mobiscroll插件 --> <script type="text/javascript"> $(function () { var curr = new Date().getFullYear(); var fun = function () { $('#txttest').scroller('destroy').scroller({ preset: 'date', minDate: new Date(2012, 3, 10), maxDate: new Date(2020, 12, 15), invalid: { daysOfWeek: [0, 6], daysOfMonth: ['5/1', '12/24', '12/25'] }, theme: $('#theme').val(), lang: 'zh' }); } $('.settings select').bind('change', function () { fun(); }); fun(); }); </script> </head> <body> <div data-role="page" data-theme="a"> <div data-role="header" data-position="fixed"> <h1>写作业</h1> <a href="http://localhost:8080/zhisland/plugs/mobiscroll/index.html" data-role="button" class="ui-btn-left">返回</a> </div> <form action="submitServlet" method="post"> <div id="choose" name="choose" data-role="content"> <label for="test" >选择日期:</label> </div> <div id="inputchoose"> <input name="txttest" id="txttest" placeholder="请选择日期" > </div> <style type="text/css"> #choose{ width:100px; float:left;} #inputchoose{ width:200px;float:left;} </style> <HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1> <div id="learn" data-role="content"> <label for="test" >学习文章:</label> </div> <div id="inputlearn"> <input name="testname" id="testname" placeholder="请填写学习文章题目" > </div> <style type="text/css"> #learn{ width:100px; float:left;} #inputlearn{ width:400px;float:left;} </style> <HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1> <div data-role="content" > <label for="name">心得体会:</label> <textarea id="feel" name="feel" style=" "></textarea> <!-- 禁止textarea自动增长 --> <script>$(function () { $("#feel").textinput("option", "autogrow", false); })</script> </div> <style> textarea.ui-input-text{min-height:200px;}</style> <HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1> <div data-role="content" > <label >自我评价:</label> <label for="1">1.听导读分享<input name="Fruit1" type="checkbox" value="1" /></label> <label for="2">2.不抱怨 不说累 尽己责<input name="Fruit2" type="checkbox" value="2" /></label> <label for="3">3.看家书点评<input name="Fruit3" type="checkbox" value="3" /></label> <label for="4">4.诵读课文<input name="Fruit4" type="checkbox" value="4" /></label> </div> <input type="submit" value="确定"> </form> <div data-role="footer" data-position="fixed"> <div data-role="navbar" data-position="fixed"> <ul> <li> <a href="http://localhost:8080/zhisland/plugs/mobiscroll/index.html"> <h3> 创建作业 </h3> </a> </li> </ul> </div> </body> </html> ``` 麻烦高手解决一下 第一次做,还不太懂。十分感谢!!
JSp页面传值和Ext JS表单自动填充
有一个JSP文件:Center_right.jsp [code="java"]<body> <table border ="1"> <tr> <td>题目编号</td> <td>题目内容</td> <td>题目类型</td> <td>选项个数</td> <td>选 项</td> <td>题目备注</td> <td>操作</td> </tr> <% while (it.hasNext()) { Questions q=(Questions)it.next(); %> <tr> <td><%= q.getQ_id()%></td> <td><%= q.getQ_head()%></td> <td><%= q.getQ_type().getQt_des()%></td> <td><%= q.getQ_number()%></td> <td><%= q.getQ_body()%></td> <td><%= q.getQ_remarks()%></td> <td><a href ="DesignQuestions/UpdateQuestion.jsp?q_id=<%=q.getQ_id()%>">修改 </a></td> <td><a href ="servlet/DeleteQueByIdServlet?q_id=<%=q.getQ_id()%>">删除</a></td> </tr> <% } list.clear(); %> <tr align="center"> <td colspan ="6"> <a href ="DesignQuestions/Center_right.jsp?page=1"> 首页</a>|| <a href ="DesignQuestions/Center_right.jsp?page=<%=mypage-1%>"> 上一页 </a>|| <a href ="DesignQuestions/Center_right.jsp?page=<%=mypage+1%>"> 下一页 </a>|| <a href ="DesignQuestions/Center_right.jsp?page=<%=totalpage%>"> 末页 </a> </td> </tr> </table >[/code] 修改命令跳转到UpdateQuestion.jsp [code="java"]<script type="text/javascript" src="JS/ext-lang-zh_CN.js"></script> <script type="text/javascript"> Ext.require([ '*' ]); Ext.onReady(function() {//onReady()函数在页面注册多个函数,依次执行 Ext.QuickTips.init(); Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider')); Ext.state.Manager.setProvider(Ext .create('Ext.state.CookieProvider')); //表单组合控件 var form = new Ext.form.FormPanel({ labelAlign : 'right', autoScroll : true, labelWidth : 50, width : 600, // title: 'form', frame : true, //reader:reader, //standardSubmit:true, //url:'servlet/AddQueServlet', items : [ { layout : 'form', items : [ { //columnWidth:.7, xtype : 'fieldset', layout : 'form', checkboxToggle : true,//折叠fieldset title : '文字输入', autoHeight : true, defaults : { width : 400 }, defaultType : 'textfield', items : [ { fieldLabel : '题目', name : 'head', allowBlank : false }, { xtype : 'htmleditor', fieldLabel : '题目备注及说明', id : 'editor', anchor : '98%', name : 'remarks', fontFamilies: ["宋体", "隶书", "黑体","Times New Roman"] }, { xtype : 'hidden', name : 'hidden' } ] }, { //columnWidth:.3, xtype : 'fieldset', checkboxToggle : true, title : '数据验证', autoHeight : true, defaultType : 'checkbox', hideLabels : true, layout : 'column', name:'checkValue', //style: 'margin-left:10px;', //bodyStyle: 'margin-left:20px;', items : [ { boxLabel : '必填', columnWidth : .125, name : 'check', inputValue : '1', checked : true, width : 'auto' }, { boxLabel : '手机号码', columnWidth : .125, name : 'check', inputValue : '2', //checked: true, width : 'auto' }, { boxLabel : '邮编', columnWidth : .125, name : 'check', inputValue : '3', width : 'auto' }, { boxLabel : '身份证号', columnWidth : .125, name : 'check', inputValue : '4', width : 'auto' }, { boxLabel : '日期', columnWidth : .125, name : 'check', inputValue : '5', width : 'auto' }, { boxLabel : 'Email', columnWidth : .125, name : 'check', inputValue : '6', width : 'auto' }, { boxLabel : '必答题', columnWidth : .25, name : 'check', inputValue : '7', width : 'auto' } ] }, { xtype : 'fieldset', checkboxToggle : true, title : '选项(每行一个)', autoHeight : true, defaultType : 'textarea', hideLabels : true, layout:'form', //style: 'margin-left:10px;', //bodyStyle: 'margin-left:20px;', items : [ { xtype:'textfield', fieldLabel : '输入选项个数', name : 'number' },{ width : 400, grow : true, name : 'options', //allowBlank : false, emptyText : '输入选项', maxLength : 10, minLength : 2 } ] }, { xtype : 'fieldset', //checkboxToggle:true, title : '选项排列', autoHeight : true, defaultType : 'radio', hideLabels : true, layout : 'column', //style: 'margin-left:10px;', //bodyStyle: 'margin-left:20px;', items : [ { boxLabel : '横向', name : 'rank', inputValue : '1', //checked: true, width : 'auto' }, { boxLabel : '竖向', name : 'rank', inputValue : '2', checked : true, width : 'auto' } ] } ] } ], buttons: [{ text: '保存', handler: function(){ //此处可以用myFormPanel.getForm()和myFormPanel.form两种方法获得表单对象. form.getForm().submit({//提交表单数据 url: 'servlet/AddQueServlet',//处理页面,注意返回内容格式的正确性 method: 'post', success: function(form, action) {//保存成功 Ext.Msg.alert('保存成功', action.result.msg); }, failure: function(form, action) {//保存失败 Ext.Msg.alert('保存失败', action.result.msg); } }) ; } },{ text: '重置', handler: function(){ form.form.reset() ;//重置表单 } }] }); form.getForm().load({ url: 'DesignQuestions/ShowQueByIdJson.jsp', params: { id: 'load' }, failure: function(form, action) { Ext.Msg.alert("Load failed", action.result.errorMessage); }, success:function(form, action) { Ext.Msg.alert("Load success", action.result.errorMessage); } }); var viewport = Ext.create('Ext.Viewport', { id : 'Center_left', layout : 'fit', autoScroll : true, items : [form] }); form.render("form"); }); </script> </head> <body> <% String qID=request.getParameter("q_id"); session.setAttribute("q_id", qID); //System.out.print(qID); %>[/code] 这个表单我想要自动填充,从ShowQueByIdJson.jsp获取值: [code="java"]<% int q_id = Integer.parseInt((String)session.getAttribute("q_id"));// 获得页面传递的参数 Questions q = new Questions(); QuestionsDao questionDao = new QuestionsDaoImpl(); q = questionDao.findQuestionsById(q_id);// 调用实现类中根据id查询的方法 %> <% String id = request.getParameter("id") ; if(id!=null &&"load".equals(id)){ %> { success: true, data: { head: "${q.q_head }", remarks: "${q.q_remarks }", number:"${q.q_number }", options: ${q.q_body }" } } <% }else{ %> { success: false, msg: "数据载入错误" } <% } %> [/code] 问题来啦!session范围是一个会话,这个q_id传不到ShowQueByIdJson.jsp,所以查不到数据写进JSON字符串,怎样才能达到:点击修改,跳转到表单的页面能够把应该的信息都填充的效果?
Spring Mvc 后台不报错 但是访问不到页面404
```<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 定义个缺省的控制适配器 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <!-- 获取配置文件 --> <bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:db-config.properties</value> </list> </property> </bean> <!-- 获取数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${db.dirverClass}"> </property> <property name="url" value="${db.url}"> </property> <property name="username" value="${db.username}"> </property> <property name="password" value="${db.password}"> </property> </bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <value> user.do=UserController </value> </property> </bean> <bean id="myController" name="/hello.do" class="com.foot.UserController"></bean> <!--定义视图 通过internalResourceView来表示 使用的是Servlet/jsp技术--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.InternalResourceView </value> </property> <!--jsp存放的目录--> <property name="prefix"> <value>Web-INF/</value> </property> <!--jsp文件的后缀--> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="UserDao" class="com.foot.UserDao "> <property name="dataSource" ref="dataSource"></property> </bean> <!--定义控制器--> <bean id="UserController" class="com.foot.UserController"> <property name="dao"> <ref bean="UserDao" /> </property> <!-- <property name="commandClass"> <value>com.cs.springmvc.test1</value> </property>--> <!--<property name="viewpage"> <value>cs</value> </property> --> </bean> </beans> ``` ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <!--springmvc的核心是DispatcherServlet,它负责控制整个页面的请求路径--> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化参数>/WEB-INF/classes/相当于src目录--> <init-param> <!-- 这个param-name必须是contextConfigLocation--> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!--拦截所有以do结尾的请求--> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!--处理从页面传递中文到后台而出现的中文乱码问题--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ``` ``` ```
初学软件体系有关MVC的问题
最近在学软件体系结构,看了下图之后有点不懂,大家看看我的理解是不是有不对的地方?谢谢! ![CSDN移动问答][1] 人通过浏览器进行操作 → 操作传递给相应的Controller(比如用JAVA写的Servlet) → 然后controller 调用业务逻辑层数据访问层等等一系列函数获取到所需的数据 → 数据返回给Controller (主要是我下面这些说的对吗?): controller知道最终需要的页面是哪个 → controller去找View获取相应的页面视图 → View把Controller需要的页面(比如含EL表达式的.jsp文件)含着EL表达式 发给Controller → Controller现在手里有了想要的显示的 “视图 + 数据” → Controller将两者进行整合(把数据嵌进页面里?) → Controller把整合好的页面发送给WEB server然后显示在浏览器上。 是这样的吗?谢谢! [1]: http://www.uml.org.cn/sjms/images/mvc-rails.png
jsp上传文件页面报无法解析的编译问题
index.jsp <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <html> <head> <title>带进度条的文件上传</title> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <link href="CSS/style.css" rel="stylesheet"> <script language="javascript" src="JS/AjaxRequest.js"></script> <script language="javascript"> //此处需要加&nocache="+new Date().getTime(),否则将出现进度不更新的情况 function getProgress(){ var loader=new net.AjaxRequest("showProgress.jsp?nocache="+new Date().getTime(),deal_p,onerror,"GET"); } function onerror(){ alert("上传文件出错!"); } function deal_p(){ var h=this.req.responseText; h=h.replace(/\s/g,""); //去除字符串中的Unicode空白符 document.getElementById("progressPercent").style.display=""; //显示百分比 progressPercent.innerHTML=h+"%"; //显示完成的百分比 document.getElementById("progressBar").style.display="block"; //显示进度条 document.getElementById("imgProgress").width=h*(255/100); //显示完成的进度 } function deal(form){ form.submit(); //提交表单 timer=window.setInterval("getProgress()",500); //每隔500毫秒获取一次上传进度 } </script> </head> <body> <form name="form1" enctype="multipart/form-data" method="post" action="UpLoad?action=uploadFile"> <table width="500" height="289" border="0" align="center" cellpadding="0" cellspacing="0" background="images/bg.jpg"> <tr> <td width="61" rowspan="2">&nbsp;</td> <td width="439" align="center"> <table width="80%" height="190" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="center">&nbsp;</td> </tr> <tr> <td height="34" style="color:#FFFFFF">请选择上传的文件:</td> </tr> <tr> <td height="42"><input name="file" type="file" size="42"></td> </tr> <tr> <td height="50" style="color:#FFFFFF"> 注:文件大小请控制在50M以内。</td> </tr> <tr> <td height="29" align="center" style="color:#FFFFFF"><div id="progressBar" class="prog_border" align="left"><img src="images/progressBar.jpg" width="0" height="13" id="imgProgress"></div>  <span id="progressPercent" style="width:40px;display:none">0%</span></td> </tr> <tr> <td height="29" align="center"><img src="images/shangchuan.gif" width="61" height="23" onClick="deal(form1)"> <img src="images/chongzhi.gif" width="61" height="23" onClick="form1.reset();">&nbsp; </td></tr> </table> </td> </tr> </table> </form> </body> </html> upload.java package com.wgh.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; 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 org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author administrator */ public class UpLoad extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if ("uploadFile".equals(action)) { this.uploadFile(request, response); // 上传文件 } } public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=GBK"); request.setCharacterEncoding("GBK"); HttpSession session = request.getSession(); session.setAttribute("progressBar", 0); // 定义指定上传进度的Session变量 String error = ""; int maxSize = 50 * 1024 * 1024; // 单个上传文件大小的上限 DiskFileItemFactory factory = new DiskFileItemFactory(); // 基于磁盘文件项目创建一个工厂对象 ServletFileUpload upload = new ServletFileUpload(factory); // 创建一个新的文件上传对象 try { List items = upload.parseRequest(request);// 解析上传请求 Iterator itr = items.iterator();// 枚举方法 while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); // 获取FileItem对象 if (!item.isFormField()) {// 判断是否为文件域 if (item.getName() != null && !item.getName().equals("")) {// 判断是否选择了文件 long upFileSize = item.getSize(); // 上传文件的大小 String fileName = item.getName(); // 获取文件名 // System.out.println("上传文件的大小:" + item.getSize()); if (upFileSize > maxSize) { error = "您上传的文件太大,请选择不超过50M的文件"; break; } // 此时文件暂存在服务器的内存中 File tempFile = new File(fileName);// 构造临时对象 // String savePath=tempFile.getName(); // //返回上传文件在客户端的完整路径名称 // request.setAttribute("filename", savePath); File file = new File(request.getRealPath("/upload"), tempFile.getName()); // 获取根目录对应的真实物理路径 InputStream is = item.getInputStream(); int buffer = 1024; // 定义缓冲区的大小 int length = 0; byte[] b = new byte[buffer]; double percent = 0; FileOutputStream fos = new FileOutputStream(file); while ((length = is.read(b)) != -1) { percent += length / (double) upFileSize * 100D; // 计算上传文件的百分比 fos.write(b, 0, length); // 向文件输出流写读取的数据 session.setAttribute("progressBar", Math .round(percent)); // 将上传百分比保存到Session中 } fos.close(); Thread.sleep(1000); // 线程休眠1秒 } else { error = "没有选择上传文件!"; } } } } catch (Exception e) { e.printStackTrace(); error = "上传文件出现错误:" + e.getMessage(); } if (!"".equals(error)) { request.setAttribute("error", error); request.getRequestDispatcher("error.jsp") .forward(request, response); } else { request.setAttribute("result", "文件上传成功!"); request.getRequestDispatcher("upFile_deal.jsp").forward(request, response); } } } 问题 java.lang.Error: 无法解析的编译问题: 无法解析导入 org.apache.commons.fileupload.disk 无法解析导入 org.apache.commons.fileupload.servlet DiskFileItemFactory 无法解析为类型 DiskFileItemFactory 无法解析为类型 ServletFileUpload 无法解析为类型 ServletFileUpload 无法解析为类型 com.wgh.servlet.UpLoad.<init>(UpLoad.java:15) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) java.lang.Class.newInstance(Class.java:442) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:610) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1777) java.lang.Thread.run(Thread.java:745) 求救
【java基础】有关setAttribute和getAttribute问题?
使用setAttribute发送到前台jsp页面,为什么用getAttribute获取的只是一些地址值呢?不是实际数据值??,我用getAttribute获取的是下列 [Bean.BookBean@361799b1, Bean.BookBean@848b902, Bean.BookBean@39effc76, Bean.BookBean@77c270f4]地址值,不是实际的数据,为什么??
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问