JAVA Web 编写登陆界面?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA Web 编写登陆界面?相关的知识,希望对你有一定的参考价值。
参考技术A <%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!-- fck编辑器引入-->
<%@ taglib uri="/FCKeditor" prefix="FCK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.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">
-->
<script language="javascript" src="<%=path%>/images/js/calendar.js">
</script>
<script type="text/javascript">
var getNow = new Date().getYear() + '-' + new Date().getMonth() + '-'
+ new Date().getDate();<!--标题验证-->
function testtitle()
var title=document.getElementsByName("t_notice.title")[0].value;
var titleSpan=document.getElementById("titleSpan");
if(title.length==0)
titleSpan.innerHTML='公告标题不能为空';
titleSpan.style.color='red';
return false;
else if(title.length>=50)
titleSpan.innerHTML='公告标题长度不能超过50';
titleSpan.style.color='red';
return false;
else
titleSpan.innerHTML='正确';
titleSpan.style.color='green';
return true;
<!-- 有效时间-->
function DateDiff(sDate1, sDate2) //sDate1和sDate2是2006-12-18格式 ,时间天数之差
var aDate, oDate1, oDate2, iDays ;
aDate = sDate1.split("-") ;
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) ; //转换为12-18-2006格式
aDate = sDate2.split("-") ;
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) ;
iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 /24) ; //把相差的毫秒数转换为天数
return iDays ;
function testbegindate()//判断生效时间
var begindate=document.getElementsByName("t_notice.begindate")[0].value;
var begindateSpan=document.getElementById("begindateSpan");
var result=DateDiff(getNow,begindate)+30;
if(begindate.length==0)//生效时间未选
begindateSpan.innerHTML='生效时间不能为空';
begindateSpan.style.color='red';
return false;
else//生效时间有选
if(result>0)//当前时间在选中的时间之后,这个生效时间可以
begindateSpan.innerHTML='生效时间不能小于当前时间';
begindateSpan.style.color='red';
return false;
else
begindateSpan.innerHTML='正确';
begindateSpan.style.color='green';
return true;
function testenddate()//判断失效时间
var begindate=document.getElementsByName("t_notice.begindate")[0].value;
var begindateSpan=document.getElementById("begindateSpan");
var enddate=document.getElementsByName("t_notice.enddate")[0].value;
var enddateSpan=document.getElementById("enddateSpan");
if(begindate.length==0)//生效时间未选
begindateSpan.innerHTML='生效时间不能为空';
begindateSpan.style.color='red';
return false;
else if(enddate.length==0)//失效时间未选
enddateSpan.innerHTML='失效时间不能为空';
enddateSpan.style.color='red';
return false;
var result=DateDiff(begindate,enddate);
if(result>0)//生效时间在失效时间之后
enddateSpan.innerHTML='失效时间不能小于生效时间';
enddateSpan.style.color='red';
return false;
else
enddateSpan.innerHTML='正确';
enddateSpan.style.color='green';
return true;
//添加附件
var i=1;
function addMore()
var buttonSpan=document.getElementById("buttonSpan");
if (i > 3)
buttonSpan.innerHTML='附件个数不能超过3个';
buttonSpan.style.color='red';
return false;
var td = document.getElementById("td");
var br = document.createElement("br");
var input = document.createElement("input");
var button = document.createElement("input");
input.name = "upload";
input.contentEditable="false";
input.type = "file";
button.type = "button";
button.value = "移除该附件" + i;
button.onclick = function()
if (confirm("确定移除该文件吗?"))
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
i--;
td.appendChild(br);
td.appendChild(input);
td.appendChild(button);
i++;
//公告内容判断
function testcontext()
//var content=document.getElementsByName("t_notice.content")[0].value;
var content=document.getElementById("t_notice.content");
var contentSpan=document.getElementById("contentSpan");
if(content.length==0)
contentSpan.innerHTML='公告内容不能为空';
contentSpan.style.color='red';
return false;
else
contentSpan.innerHTML='正确';
contentSpan.style.color='green';
return true;
function testall()
if(testtitle()&&testbegindate()&&testenddate()&&testcontext())
alert('验证成功!');
return true;
else
alert('验证失败,请按要求完善公告相关信息');
return false;
</script>
<s:head />
</head>
<body>
<s:form action="notice!add" namespace="/dsd" method="post"
enctype="multipart/form-data" onsubmit="return testall();">
<s:hidden name="t_notice.status" value="0"></s:hidden>
<table width="100%" height="100%">
<tr bordercolor="blue">
<td align="center" background="images/top_bg.gif" colspan="2">
公告发布
</td>
</tr>
<tr>
<td align="center" width="50%">
公告标题:
</td>
<td>
<s:textfield name="t_notice.title" onblur="testtitle();"></s:textfield>
<span id="titleSpan"></span>
</td>
</tr>
<tr>
<td align="center" width="50%">
生效时间:
</td>
<td>
<s:textfield name="t_notice.begindate"
onfocus="show_cele_date(this,'','',this)"
onblur="testbegindate();"></s:textfield>
<span id="begindateSpan"></span>
</td>
</tr>
<tr>
<td align="center" width="50%">
失效时间:
</td>
<td>
<s:textfield name="t_notice.enddate"
onfocus="show_cele_date(this,'','',this)" onblur="testenddate();"></s:textfield>
<span id="enddateSpan"></span>
</td>
</tr>
<tr>
<td align="center" width="50%">
上传附件:
</td>
<td id="td">
<input type="button" value="添加附件" onclick="addMore();" />
<span id="buttonSpan"></span>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<!--<s:hidden name="t_notice.content"/>
-->
<FCK:editor id="t_notice.content" width="80%" height="320"
fontNames="宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana"
imageBrowserURL="/OA/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
linkBrowserURL="/OA/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
flashBrowserURL="/OA/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
imageUploadURL="/OA/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="/OA/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="/OA/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash">
</FCK:editor>
<span id="contentSpan"></span>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="button" value="返回" onclick="javascript:window.history.back();"/>
<s:submit value="添加" />
<s:reset value="重置" />
</td>
</tr>
<tr>
<td>
<s:fielderror />
</td>
</tr>
<tr>
<td>
<s:actionerror />
</td>
</tr>
</table>
</s:form>
</body>
</html>
类似这样的 你好好研究下下吧 参考技术B 你写的是MVC模式的吗?是怎么样的登录页面说具体点 参考技术C 加油 参考技术D 可以啊。一个jsp页面就可以搞定了 第5个回答 2013-04-08 大哥,你这说的也太笼统了,需求不明确,叫人怎么回答
java项目实战Servlet具体解释以及Servlet编写登陆页面
Servlet是Sun公司提供的一门用于开发动态web网页的技术。
Sun公司在API中提供了一个servlet接口,我们假设想使用java程序开发一个动态的web网页,仅仅须要实现servelet接口,并把类部署到webserver上就能够执行了。
究竟什么是Servlet呢?
通俗一点,仅仅要是实现了servlet接口的java程序,均称Servlet。
Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小应用程序),Servlet是在server端执行的小程序。
编写一个现实登陆的Servlet,并部署訪问
1、我们先写一个简单的HTML,能够在WebRoot新建,也能够复制一个写好的HTML,我们用post提交方式。当然也能够用get提交,大家能够自己尝试一下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>登录</title> </head> <body> <form action="http://localhost:8080/loginServlet/LoginServlet" method="post"> 用户:<input type="text" name="username" /><br/> 密码:<input type="password" name="password" /><br/> <input type="submit" value="登录" /> </form> </body> </html>
2、完毕Servlet,在Web项目的src中右键新建一个类LoginServlet。输入以下代码就可以。
//引入所须要的包 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class LoginServlet extends HttpServlet { //重写doGet方法 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); //server端信息打印 //System.out.println("username=" + username); //System.out.println("password=" + password); //设置编码格式 response.setContentType("text/html;charset=GB18030"); //返回html页面 response.getWriter().println("<html>"); response.getWriter().println("<head>"); response.getWriter().println("<title>登录信息</title>"); response.getWriter().println("</head>"); response.getWriter().println("<body>"); response.getWriter().println("欢迎【" + username + "】用户登录成功!!!"); response.getWriter().println("</body>"); response.getWriter().println("</html>"); } //重写doPost方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
3、在WebRoot下的WEB-INF的web.xml,部署我们的Servlet,启动server。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> </web-app>
4、一定要启动server,之后在浏览器中输入你的URL。此时我们就能够调用Servlet了。我们看一下执行结果。
实例的demo:http://download.csdn.net/detail/jiuqiyuliang/7593641
==============================================================================================================================
假设不知道怎么配置java Web项目。能够移驾到我的上篇博客(一步步教你使用MyEclipse搭建java Web项目开发环境(一)),以下我们具体介绍Servlet的基础知识。
==============================================================================================================================
Servlet基础
1、解读API文档。纯手工编写一个Servlet程序,并部署訪问(如上所看到的)。
解读API对于拒绝学习API的程序猿们是一种煎熬,但它却是我们学习和进步的最好工具,且学且珍惜。
大家能够在点进去看一看。从上图,能够看出Servlet接口定义三个实现类,各自是FacesServlet, GenericServlet。 HttpServlet。以下我们简单的介绍一下。
2、Servlet接口实现类
(1)FacesServlet是一个用于管理利用JSF(JavaServer Faces)构建用户界面的web应用程序请求处理生命周期的Servlet。(FacesServletis a servlet that manages the request processing lifecycle for web applications that are utilizing JavaServer Faces to construct the user interface.)。大家假设想深入的学习。能够点这里。
(2)GenericServlet是HttpServlet的父类,包括了servlet的经常用法。GenericServlet使得程序猿写servlets更加简单。它提供了初始化和销毁生命周期的方法,以及实现了写日志文件的方法。
(3)HttpServlet指可以处理HTTP请求的servlet。这是开发者在编写Servlet时,通常应继承这个类就可以。
对于这三个实现类,仅仅为大家做一个简单的介绍,假设想深入的研究。直接看API就好。
3、Servlet部署
client通过URL地址訪问webserver中的资源,所以若想訪问Servlet必需要把servlet程序映射到一个URL地址上。在web.xml文件里使用<servlet>元素和<servlet-mapping>元素完毕,如上面的实例。
*<servlet>用于注冊Servlet,包括了<servlet-name>和<servlet-class>两个子元素,分别用于设置servlet的名称以及servlet的类名。
*<servlet-mapping>用于映射上面<servlet>中的对外訪问路径,相同包括<servlet-name>和<url-pattern>两个元素。分别用于设置servlet的名称以及servlet的对外訪问路径。
在servlet映射到URL有两种格式:
1.“*.扩展名”
2.以正斜杠(/)开头并以“/*”结尾。
servlet对url的匹配规则以及路径问题。大家能够上网查。有非常多相关的资料。比如:http://blog.csdn.net/xh16319/article/details/8014107
4、Webserver调用Servlet过程(Servlet生命周期)
servlet程序是由webserver调用,webserver实现了对servlet生命周期的管理。servlet的生命周期分为四步:
1)实例化以及载入servlet,new的过程。
2)初始化init(ServletConfig)。
3)处理请求,调用servlet的service,doget,dopost方法将Request和Response。作为參数传递。
4)退出服务,调用destory方法释放资源。
注意:
1、servlet仅仅实例化一次。感觉有点单例模式的意思,大家能够研究一下Tomcat的实现原理。
2、init方法也仅仅运行一次。servlet实例仅仅创建一次。所以init初始化仅仅调用一次。
5、Servlet线程安全问题
当多个client并发訪问同一个Servlet时,webserver会为每个client的訪问请求创建一个线程。并在这个线程上调用service方法。因此,service方法内假设訪问了同一个资源的话。就有可能引发线程安全问题。大家重点理解以下两句就可以:
(1) Servlet是单实例多线程的,假设存在能够改动的成员变量将会出现线程安全问题。
(2) 使用Servlet最好保证Servlet是无状态的,也就是没有能够改动的成员变量。
这篇博文仅仅是介绍了Servlet基础知识。大家还有什么疑问能够给我留言,我会及时给大家解决。
=============================================================================================================================
下篇博文。我们做一个JDBC连接Oracle数据库的实例,欲知后事怎样,请看下回分晓!
=============================================================================================================================
以上是关于JAVA Web 编写登陆界面?的主要内容,如果未能解决你的问题,请参考以下文章
高分求教:如何实现java web 按钮点击弹出登陆界面,并登陆