本文目录一览:
jsp是什么
JSP是一种动态网页技术标准,这种技术可以根据客户端的请求,生成动态或者静态网页,然后发送给客户端的请求者。 不少的朋友经常会在电脑科普网站上看到jsp这个概念,究竟这个jsp是什么意思?jsp又有什么作用和特点呢?下面让我们一起去了解吧。 详细内容 01 JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。 02 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。 03 标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。 04 用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 05 在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
解释JSP代码,越详细越好
%
Condb con = new Condb(); // 建立数据库连接
int num = 0; // 定义计数变量,初始化为0
String sql = "select * from tb_Result where Result='"+1+"'"; // 数据库查询命令
ResultSet rs = con.executeQuery(sql); // 执行数据库查询命令
while(rs.next()){ // 判断是否是记录集最后一条同时移动数据库记录至下一条
num++; // 计数变量自加1
%
tr
td width="37" height="22" align="center">%num%/td
td height="22" align="left">
a href="Rparticular.jsp?temp=%=rs.getString(2)%" 得到数据库第三个字段的值作为temp参数的值
%
String str = rs.getString(2);
out.println(str); // 输出数据库第三个字段的值
%
/a
/td
td height="22" align="center">%rs.getDate(8)%/td
td height="22" align="center">%rs.getString(9)%/td
/tr
%
}
con.close(); // 关闭数据库连接
%
求大神写一下jsp的简单的注册界面代码。
- 需要一个jsp页面:
// login.jsp核心代码:
<form action="${pageContext.request.contextPath}/servlet/UserServlet" method="post">
<input type="text" name="loginname" />
<input type="password" name="password"/>
<input type="submit" value="登录"/>
</form>
- 需要一个servlet来验证登录信息
// UserServlet 核心代码
class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
private void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String loginname = request.getParameter("loginname");
String password = request.getParameter("password");
// 创建一个service来处理业务逻辑(包括查询数据库操作)
UserService service = new UserService();
boolean bool = service.validateUser(loginname, password);
if (!bool) {
pw.println("用户名或密码错误");
} else {
pw.println("登录成功");
}
}
}
- 需要一个service处理业务逻辑(包括查询数据库操作)
// UserService 核心代码
public class UserService {
/**
* 查询数据库验证用户是否存在,返回boolean
*/
public boolean validateUser(String loginname, String password) {
boolean bool = false;
Connection conn = null;
PreparedStatement ps = null;
// 这里以mysql为例
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
String sql = "select login_name,pass_word from t_user where login_name=? and pass_word=?";
ps = conn.prepareStatement(sql);
ps.setString(0, loginname);
ps.setString(1, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
bool = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
conn = null;
}
if (ps != null) {
ps.close();
ps = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return bool;
}
}
jsp程序代码
<%@ page language="java" import="java.util.*" errorPage="error.jsp" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("GBK"); %>
<html>
<head>
<title>动作处理页面</title>
</head>
<body background="C:\tp\yy.JPG">
<font color=yellow>
<center><br><h2>
<jsp:useBean id="loginbean" class="com.login.LoginBean"/> <!-- 使用jsp:useBean标签调用LoginBean.java,class指明JavaBean位置 -->
<jsp:setProperty name="loginbean" property="*"/> <!-- 设置LoginBean的属性值 -->
<%
out.println("用户号为:"+loginbean.getUserid()+"<br><br>"); // 输出loginbean里面getUserid的值
if (loginbean.getUserid() == null) { // 如果用户名为空
throw new Exception("尊敬的用户:系统登录页面中的用户名不能为空,请输入用户号!");
}
if (loginbean.getPsw() == null) { // 如果密码为空
throw new Exception("尊敬的用户:系统登录页面中的密码不能为空,请输入密码!");
}
if (loginbean.getPsw().equalsIgnoreCase("neusoft")) { // 如果JavaBean的密码和输入密码相同
String puserid = request.getParameter("userid"); // 获得此用户ID
Cookie cookies[] = request.getCookies();
// 如果是上一步提交过来的,则更新Cookie的值
if(puserid != null) {
Cookie c = new Cookie("userid", puserid);
c.setMaxAge(60*60*24*30); // Cookie的有效期为1个月setMaxAge()是Cookie的一个方法,单位为秒
// 60*60*24*30等于30天*24小时*60分*60秒==结果就为1个月的秒数
response.addCookie(c);
}
session.setAttribute("login","ok");
session.setMaxInactiveInterval(-1);
%>
<jsp:forward page="success.jsp" /> <!-- 跳转至success.jsp -->
<%
} else { // 如果密码不正确则执行
out.println("对不起,密码输入错误!您此次系统登陆失败!请重新输入密码!<br><br>");
out.println("<A href=login.jsp>返回</A><br>");
}
%>
</h2><br><hr></font></body></html>
答题完毕