新手在jsp网站开发中所遇到的问题汇总

JSP_运维_JSP项目部署到服务器(适合0经验新手) 实战:真正服务器端部署jsp项目经验总结与记录(完整过程从0到10适合对服务器端部署0经验新手) jsp+tomcat+mysql项目部署到真正服务器; 服务器mysq安装; 服务器jdk安装; 服务器tomcat安装; 服务器sql文件管理; 服务器jsp项目与服务器mysql连接;第一步是安装jdk,jdk应该是所有需要安装的软件中最先安装的。jdk具体如何安装可以参考这篇我截取了可以参考的 阅读详情

1.通过响应onclick方法来跳转并传参数,在另一个页面中用reque.getparameter("user")便能得到该参数的值。
onclick="location.replace('userprivate.jsp?user=<%=rs.getString("gid")%>')"
其中rs是我查找数据库的返回值。

 

 

2.用javascript来弹出有确定和取消的提示框:

<script type="text/javascript">
function test(){
  var k=window.confirm("你确定要修改或删除该记录");
  if(k){
    event.returnValue=true;
  }
  else{
    event.returnValue=false;
  }
} </script>

<td ><a href="groupdelete.jsp?gdelete=<%=rs.getString("gid")%>"   onclick="test()" >删除</a></td>

在该表达式中点击“删除”时会弹出询问框,当选择“确定”时会跳转到href指向的链接,此时test()返回true,点击“取消”时test()
返回false所以页面不会跳转。gdelete可以是任意的字符串,比如gdelet="hello"。
在< a href="/good.jsp"

 


  3.javascript取得<form name="registerform"...>  <input name="password" ...>   <input type="submit" name="Submit" value="提交" onclick="test()"/></form>中的各个input的value值:

registerform是form的name,password是input的name,value是input对应的value,
test()在最后一个submit按钮中调用,当test返回true是就提交表单,否则给出提示信息,不会提交表单。
<script type="text/javascript">
function test(){
 
    if(document.registerform.password.value=="")
     {
 alert("密码不能为空!");
 event.returnValue=false;
 return;
      }
     if(document.registerform.password.value!=document.registerform.confirmpassword.value=="")
     {
 alert("两次输入的密码密码不相同!");
 event.returnValue=false;
 return;
      }
}
</script>

 

4.为数据库增加一列: alter table userorder add personnum int;

 

><u><a href="storeuserorder.jsp?user=<%=request.getParameter("user")%>
            &starttime=<%=request.getParameter("starttime")%>
            &endtime=<%=request.getParameter("endtime")%>
            &personnum=<%=request.getParameter("personnum")%>
             &totalmoney=<%=totalprice%>
             &textarea=<%%>">确定并提交订单     </a></u>

 

5.

JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP。
通过对象 request和 session (不考虑 application)完成传值。

一、JSP -> servlet
JSP页面有3种方法向 servlet传值: form表单、URL 、其他

<!-- JSP page -->
...
<%......
 session.setAttribute("testSession","Hello session");
 reqeust.setAttribute("testRequest","Hello request");
%>
<a href="JspServlet?action=toServlet">click me</a>
<form action="JspServlet?action=toServlet" method="post" name="form">
 <input name="username" type="test" />
 <input type="submit" value="submit">
</form>
...

 

5.1、对于该JSP页面 form表单的内容,如 <input>标签,在 servlet可用 request.getParameter("username");获取。
5.2、URL:比如这里的 <a>标签的 href属性与 <form>标签的 action属性的值 "JspServlet?action=toServlet",在 servlet同样用 request.getParameter("action")获取;所要注意的是这里的 url 要和 servlet在web.xml里的 <url-pattern>标签的路径所对应。这部分后面会提到。
5.3、java片段代码,servlet只能接到 session.setAttribute("testSession","Hello session")的内容,而接不到 request的内容。在 servlet里用 request.getSession().getAttribute("testSession")获取 session内容。

6、Servlet
6.1、关于 servlet,首先要提到它在 web.xml里的注册内容,如

 <servlet-name>JspServlet1</servlet-name>
 <servlet-class>com.demo.JspServletDemo</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>JspServlet1</servlet-name>
 <url-pattern>/JspServlet</url-pattern>
 </servlet-mapping>

 <servlet-name>JspServlet2</servlet-name>
 <servlet-class>com.demo.JspServletDemo</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>JspServlet2</servlet-name>
 <url-pattern>/admin/JspServlet</url-pattern>
 </servlet-mapping>

假如 project name 是 jsp2servlet,则该 project根目录的 Context是 /jsp2servlet,在地址栏里显示是 http://localhost:8080/jsp2servlet/;
在 project 根目录下有 admin目录,对应的 Context是/admin/jsp2servlet,在地址栏里显示是 http://localhost:8080/jsp2servlet/admin,
在这两个目录下的 jsp 都想转到 com.demo.JspServletDemo类做处理,这时的 url需要在 web.xml注册两次。
1)在 http://localhost:8080/jsp2servlet/ 目录下的 jsp 页面 JspServlet1,url应写为 "JspServlet"
2)在 http://localhost:8080/jsp2servlet/admin/ 目录下的 jsp 页面访问 JspServlet2,url应写为 "admin/JspServlet"

6.2、在 servlet直接用 request对象,得到发送来的请求内容;用 request.getSession(),得到 session对象,从而得到会话内容。

这里的 request.getSession()的参数为 boolean 类型,该方法意思可理解为:

session可以认为是每一个IE进程对应一个会话(新开一个IE进程就可以对应两个会话的),getSession都是返回当前用户的会话对象,参数的区别在于:
参数为true (默认),则如果“当前用户的会话对象”为空(第一次访问时)则创建一个新的会话对象返回;
参数为false,则如果“当前用户的会话对象”为空,则返回 null (即不自动创建会话对象)。

利用这个方法可以判断 session是否过期,如下:

if(request.getSession(false)==null)
 System.out.println("Session has been invalidated!");
else
 System.out.println("Session is active!");
7、Servlet -> JSP
从 servlet转到 jsp不外乎两种方法,重定向 和 url转发

7.1、重定向 ( Redirect):是路径的跳转,内容和 url都改变。不允许带 request参数( session参数可以),即不允许在 servlet里给 request对象使用setAttribute方法传给下一页面。在 servlet里使用 response.sendRedirect(url) 方法。注意这里的 url前不带斜线 /,如 response.sendRedirect(”test.jsp“)

7.2、url转发 ( Forward):是页面的跳转,页面内容发生改变,url不变。可以带 request和 session参数。在 servlet里使用 getServletConfig().getServletContext().getRequestDispatcher(url).forward(request, response)。而这里的 url前需要带斜线 /,如getServletConfig().getServletContext().getRequestDispatcher(”/test.jsp“).forward(request, response)
 在servlet中用 request.setAttribute("sequence", sequence);设置sequence的值,在JSP中用order_num=request.getAttribute("sequence").toString();来取得相应的值。


8.永远不要再JSP中用<%! %>来声明全局变量,因为这些变量在跳转到下一个页面时不会被重置,这样就会形成累加。
9.用dreamweaver做的JSP文件可能存在路径的问题,只要在JSP文件中加入:
(1)在JSP开头加入
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
(2)在JSP的head中加入:<base href="<%=basePath%>">

10.由于servlet在运行时只是加载一次,所以对数据库连接的操作不能定义成static,要在没次操作时都重新去连接数据库,否则就会出现在第一次正确操作后第二次操作就会出错。
11.数据库查询后的结果集保存的是相应项的索引,索引在没有取出相应项的值之前不能删除该行也不能关闭跟数据库的链接,否则就会出现opration not allowed after ResultSet have been closed;

 

12.mysql数据库表的导入和导出:
1.数据导入:
从cmd进入mysql安装目录下的bin,然后输入以下命令就能导出表:
mysqldump -u root -p test -d > d:/test.sql    其中test为要导出数据库名字。d:/test.sql    为导出文件放置的位置以及文件名
2.数据导出:
同样输入以下命令就能将表导入(你只需要执行这一句就行了)
mysql -u root -p test<d:/test.sql      其中test为要导入数据库名字。d:/test.sql    为导入文件放置的位置以及文件名

这些都是我前段时间做网站开发后台处理程序时所遇到的主要问题的解决方法,希望能对新手有帮助。

 

 

QQ:772319357

JSP基础实践项目:创建交互式网站案例 本文还有配套的精品资源,点击获取 简介:JSP(Java Server Pages)是一种动态网页技术,通过将HTML与Java代码结合,简化了Java Web应用的开发。本案例面向初学者,包含多个JSP页面,演示了数据展示、用户输入处理等功能。页面由静态和动态内容组成,展示了JSP生命周期的三个阶段、内置对象、动作标签等核心概念。还包括Java Bean的使用和MVC设计... 阅读详情

相关推荐

jsp开发中遇到的问题及解决方案.rar

jsp开发中遇到的问题及解决方案,这是我开发J2EE项目中所总结的所有关于jsp初学者需要知道及解决的问题,欢迎下载,绝对物超所值!!!!

关于JSP常见的几个问题,我收集了一下,希望对大家有点用!

1、 Servlet与JSP有什么区别? Servlet和JSP完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法。 不同点在于JSP是在html或者xml中嵌入了Java代码或者JSP的标记,在制作页面方面具有优势,可以使用网页编辑工具来制作网页,然后嵌入Java或者JSP的标记。Servlet是纯Java代码,通常用于控制,不用于输出。在MVC模式中,JS...

ajie1985的博客 271

Logisim实战:手把手教你设计硬布线版MIPS CPU(多周期/8指令/附电路图)

本文是一份详细的Logisim实战指南,手把手教你设计一个采用硬布线控制的多周期MIPS CPU。文章深入剖析了硬布线控制与微程序控制的核心理念差异,并逐步讲解了从定义执行状态、构建状态跳转逻辑到生成控制信号、集成测试的完整流程,最终实现一个支持8条指令、可运行简单程序的处理器模型。

g9h0i1的博客 592

JSP编程中遇到的问题及解决

这次在学习jsp编程语言的过程中我遇到了许许多多的问题,并尝试自己解决了。1.网页如下报错:javax.el.PropertyNotFoundException: Property 'account' not found on type java.lang.String是因为在语句&lt;c:forEach items = "${testTittleLists }" var = "t"&gt;中i...

yzb260909579的博客 4216

三级等保网络拓扑图实战:从零搭建符合标准的医院安全架构

本文详细阐述了如何从零开始设计并搭建符合三级等保标准的医院网络安全架构。文章基于“一个中心,三重防护”的核心框架,深入解析了医院网络分区设计、安全域划分、关键安全设备选型与配置等实战要点,并提供了绘制专业网络拓扑图的技巧与等保测评准备指南,旨在帮助医院IT人员系统化地构建既合规又实用的纵深防御体系。

weixin_29326909的博客 504

绿米Aqara S1【妙控开关 S1E】版本降级或升级自定义固件的方法

绿米Aqara S1【妙控开关 S1E】版本降级或升级自定义固件的方法

LeeKwen的专栏 2173

关于jsp相关问题集锦

包含遇到的问题及其解决措施

shanheye的博客 1250

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

JSP常见错误以及解决方案

本节我们分析一下常见的 JSP 错误信息,并给出解决方案。这些错误大家在实际开发中会经常遇到,所以有必要在此提及一下。

unber的博客 3697

线程池详解(通俗易懂超级好)

目标 【理解】线程池基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】使用java内置线程池完成综合案例 线程池 线程池基础 线程池使用 线程池综合案例 4.学员练习 5.线程池总结 概念介绍 1:什么是线程池 2:为什么使用线程池 3:线程池有哪些优势 什么是池 什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runna.

拉格朗日的学习笔记 12万+

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

蚂蚁小兵 2466

JSP中文乱码问题终极解决方案(下)

本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案。

Rico's Blogs 10万+

【2022】人工智能☆✨

1. 朴素⻉叶斯⽅法是⼀种 ( ) ⽅法。A.机器学习的分类B.不确定性推理C.知识表示答案:A解析:朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法。它通过学习训练数据集来预测未知数据的类别标签,因此属于机器学习中的监督学习分类方法。选项B不确定性推理和选项C知识表示虽然与朴素贝叶斯方法有一定的关联,但它们并不是朴素贝叶斯方法的主要应用领域或定义特性。2. 关于启发式搜索描述正确的是 ( )。

super_mochi1 402

第21课: JSP语句 if判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)

控制流语句 JSP提供对Java语言的全面支持。您可以在JSP程序中使用Java API甚至建立Java代码块,包括判断语句和循环语句等等。 if判断语句 If…else块,请看下面这个例子: 示例:if-01.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head&g

杭州.黄老师 2653

第1章 机器人SLAM算法工程师主要做什么的?(附SLAM学习路线及资料推荐)

对于想从事机器人与自动驾驶领域的在校大学生、研究生来说,建图定位算法工程师是一个极具发展潜力的岗位,而SLAM知识体系则是胜任该岗位的核心支撑。从基础的计算机工具、C++语言,到核心的开源框架、数学知识,再到硬件衔接与项目实践,每一个环节都不可或缺。建议大家结合自身兴趣确定侧重方向(如激光SLAM、融合定位),先通过开源项目建立实践认知,再补全理论知识,同时积极参与社区交流。

行知SLAM 955

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

基于Jsp的美食网站-java美食网

基于Jsp的美食网站-java美食网1.包含源程序,数据库脚本。2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善。开发环境:Eclipse ,MySQL 5.1,JDK1.7,Tomcat 7涉及技术点:MVC模式、JavaWeb、JDBC、HTML、CSS、JQUERY、文件上传、购物车等。程序功能:1.网站前台:用户登录、新闻公告、美食评价、图片轮播、美食分类、美食查看、美食列表分页、...

weixin_33981932的博客 3337

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

第6课:JSP 输出示例(黄菊华Java网站开发系列教程)

JSP 输出示例 在jsp中常规使用out.println() 和 <%=%>输出的形式。 使用out.println()输出 示例:002-println.jsp 也可以使用out.print()输出 System.out.println();在服务器的控制台输出,用做调试最好的说。 示例 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head>

杭州.黄老师 1443

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jsp网站显示成乱码以及js修改编码问题

在项目别的都配置好了以后,突然出来了一个很蛋疼的问题,

哈哈呼呼 738

第22课: JSP语句 switch判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)

switch判断语句 现在来看看switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中,就像下面这样 示例:switch-01.jsp <%@ page import="java.util.Calendar" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <ti

杭州.黄老师 1454

第23课: JSP语句 循环语句 for循环 while 循环(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)

循环语句 在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。 for循环 让我们来看看for循环的例子: 示例:for-01.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%

杭州.黄老师 5329

第7课:JSP注释 (黄菊华Java网站开发系列教程)

JSP注释 JSP 语法缺少不了注释声明,注释是为了能让他人看懂代码。 在 JSP 页面中可以使用多种注释,如 HTML 中的注释、Java 中的注释和在严格意义上说属于 JSP 页面自己的注释——带有 JSP 表达式和隐藏的注释。在 JSP 规范中,它们都属于 JSP 中的注释,并且它们的语法规则和运行的效果有所不同。接下来我们将介绍 JSP 中的各种注释。 HTML中的注释 JSP 文件是由 HTML 标记和嵌入的 Java 程序段组成的,所以在 HTML 中的注释同样可以在 JSP 文件中使用。注释

杭州.黄老师 643

适合JAVA新手学习的网站

http://www.cn-java.com/www1/中文java技术网看起来技术文章不少。http://www.javaxxz.com/Java学习者比较多入门的东西,而且网站制作比较干净,感觉不错 http://www.cnjsp.org中国JSP技术网站专门讨论JSP技术,包括JDO链接数据库等等 http://bbs.ccidnet.com/bbs.p...

weixin_33753845的博客 2275

如何用java开发一个网站?

问题:如何用java开发一个网站? 下载了最新的JDK软件、最新的Eclipse、数据库mysql以及tomcat、struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector-java-5.1.44中没有Driver.jar,tomcat配置环境的时候也有问题,tomcat plugin没有和最新的JDK配套的怎么办? 看了问题,我建议题主还是好好先学一轮基础的东西。 基于问题我简单提几点: Eclipse是开发工具,最新的没问题。JDK其实不需要用最新,现在市面上大多数还是JDK

ychenjava的博客 1万+

第5课:JSP表达式(黄菊华Java网站开发系列教程)

JSP表达式 表达式用于在页面中输出信息,其使用格式如下: <%=变量或可以返回值的方法或 Java 表达式%> 特别要注意,“<%”与之间不要有空格。 JSP 表达式在页面被转换为 Servlet 后,变成了 outprint() 方法。所以,JSP 表达式与 JSP 页面中嵌入小脚本程序中的 out.print() 方法实现的功能相同。如果通过 JSP 表达式输出一个对象,则该对象的 toString() 方法会被自动调用,表达式将输出 toString() 方法返回的内容。 JSP

杭州.黄老师 1105

第4课:JSP结构和处理(黄菊华Java网站开发系列教程)

JSP 结构 网络服务器需要一个 JSP 引擎,也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。 JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网页的特殊元素。 下图显示了 JSP 容器和 JSP 文件在 Web 应用中所处的位置。 JSP 处理 以下步骤表明了 Web 服务器是如何使用JSP来创建网页的: 就像其他普通的网页一样,您的浏览器

杭州.黄老师 494

菜谱网 java 源码_基于JSP的美食网站食谱网站、javaweb源码

需求分析利用jsp+servlet实现一个类似下厨房的美食食谱网站, 用户可以登录注册, 上传自己的食谱, 并附有详细的图片与步骤, 并可按照分类或者查询关键词, 查看搜索其他食谱, 并能收藏其他人的食谱本站提供其他类型的 美食食谱网站源代码点击查看运行环境jdk1.8,tomcat8.5,mysql5.6,EclispseEE项目技术servlet, bootstrap, jsp, jquer...

weixin_42509931的博客 4116
上一篇: 酒后沉思
下一篇: 人生第一次
fhxd
博客等级 码龄18年 63粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值