第一次做javaweb

·记录一下第一次做javaweb的感受吧,编程学的不多,课程作业是javaweb项目,然后就是遇到很多的大大小小的麻烦。感觉收获蛮多的。
这里用到的主要是有html css js jquery servlet filter el jsp 数据库的内容,用的idea开发环境,然后简单的记录一下遇到的问题以及一些流程:
1.首先就是创建项目->maven->然后选择archetype创建->这里要选择的是
org.apache.maven.archetypes:maven-archetype-webapp. 因为可能还会有org.apache.cocoon:cocoon-22-archetype-webapp 但有时候这里面没有这个选项不知道为什么然后就可以创建啦。然后在创建完之后会出现一个src文件夹,里面会有main文件夹,main文件夹里会有java、resources、webapp这几个文件夹,但有时候创建的时候没有这几个文件夹,需要在main手动添加java、resources文件夹,当你创建的时候会有自动的提示。
还有一点就是刚创建项目的时候,可能时候都没有,但是过了一会后,右下角会出现检测到web框架,然后点那个,等一些就绪后,重启idea后就可以了。
2.然后就是先说tomcat服务器的配置,点击tomcat服务器(本地的),编辑配置先部署一下项目,然后在服务器页面配置一下,这里没有什么太大问题,然后虚拟机选项可以填写-Dfile.encoding=UTF-8。
3.然后就是创建相应的servlet类,里面有doget、dopost、service方法,但我做项目的时候只用到了doget、dopost两种,然后servlet的类,里面有个注解,注解里面的地址就是当打开网页的时候,网页地址栏哪里 项目名/注解里面的地址,然后doget方法我理解的就是当请求经过这个sevlet页面时,那么我就去调用doget方法,比如说在超链接里面的地址是indexservlet,那么当点击超链接时,就会相应的调用doget方法,dopost方法的话,就是假如说在doget方法里面,请求转发到一个需要进行提交表单的页面,然后在提交表单的页面form标签 地址是indexservlet那么就会调用dopost方法,因为一般表单提交方式是post ,也就是form标签里面 method属性值 。
4.servlet里面request和response,请求转发的话,我认为就是从一个页面跳到另一个页面,然后里面的request可以说是同一个,也就是从一个页面到另一个页面request实际上没有改变,在前一个页面存放在request里面东西可以到下一个页面使用,但是用完就消失了。然后还有请求转发后面的.forward(request,response)不要忘记。获取参数getparameter 存取属性setattribute 获取属性getattribute 。 一般往request存东西,请求转发到其他页面,要搭配el表达式就是相应输出。
5.过滤器的话,@WebFilter(value = “/WEB-INF/jsp/",dispatcherTypes = {DispatcherType.FORWARD,DispatcherType.REQUEST}),这里就是只要访问相应文件夹的数据那么我就使用过滤器,访问方式有两种 请求转发到的还有直接请求的。意思就是一种是直接访问.html这种页面的方式,一种是通过请求转发里面填写的地址进行访问。 chain.doFilter(req, res);就是放行,否则被拦截。
@WebFilter(value = "/WEB-INF/jsp/
”,dispatcherTypes = {DispatcherType.FORWARD,DispatcherType.REQUEST})
public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
HttpServletResponse resp = (HttpServletResponse) servletResponse;
User u = (User) req.getSession().getAttribute(“user”);
String uri = req.getRequestURI();
if(uri.contains(“/CSS/”)||uri.contains(“/JS/”) || uri.contains(“/IMAGE/”)){
filterChain.doFilter(req,resp);
}
if(u!=null) {
filterChain.doFilter(req, resp);
}else{
req.getRequestDispatcher(“/login”).forward(req,resp);
}
}
}
6.还有就是一些代表路径的东西,像KaTeX parse error: Expected '}', got 'EOF' at end of input: …ion (){ if((window).scrollTop()>100){
KaTeX parse error: Expected 'EOF', got '}' at position 65: …ex":"15"}) }̲else if((window).scrollTop()<=100){
$(“.nav”).css({“position”:“absolute”,“top”:“100px”})
}
},1)
轮播图(看的b站学的):
var obj = {};
var num = 0;
obj.name = “djydjydjy”;
var lunbolist = document.querySelector(“.lunbolist”);
var lunbo = document.querySelector(“.lunbo”);
var flag = true;
$(“.lunbo”).on({
mouseover:function (){
$(“.left”).show();
$(“.right”).show();
clearInterval(timer);
timer=null;
},
mouseout:function (){
$(“.left”).hide();
$(“.right”).hide()
timer = setInterval(function (){
$(“.right”).click();
},4000)
}
})
function animate(obj,target,callback){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var step = (target-obj.offsetLeft)/10;
step = step > 0 ? Math.ceil(step):Math.floor(step);
if (obj.offsetLeft == target+10) {
clearInterval(obj.timer);
if(callback){
callback();
}
}
obj.style.left = obj.offsetLeft -10 + “px”;
},15)
}
function animate1(obj,target,callback){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var step = (target-obj.offsetLeft)/10;
step = step > 0 ? Math.ceil(step):Math.floor(step);
if (obj.offsetLeft == target-10) {
clearInterval(obj.timer);
if(callback){
callback();
}
}
obj.style.left = obj.offsetLeft +10 + “px”;
},15)
}
$(“.right”).click(function (){
if(flag){
flag = false;
if (num == lunbolist.children.length-1) {
lunbolist.style.left = 0;
num = 0;
}
num++;
animate(lunbolist,-num
(lunbo.offsetWidth-20),function (){
flag = true;
});
}
})
$(“.left”).click(function (){
if(flag){
flag = false;
if (num == 0) {
num = lunbolist.children.length-1;
lunbolist.style.left = -num * (lunbo.offsetWidth-20) + “px”;
}
num–;
animate1(lunbolist,-num
(lunbo.offsetWidth-20),function (){
flag = true;
});
}
})
var timer = setInterval(function (){
$(“.right”).click();
},4000)
})
还有二级导航栏的显示和隐藏
$(“.nav-col”).on({
mouseover:function (){
var a = $(this).index();
$(“.nav-col”).eq(a).find(“li”).show();
},
mouseout:function (){
var a = $(this).index();
KaTeX parse error: Expected 'EOF', got '}' at position 47: …ide(); }̲ }) 8.文字多余隐…{n.getId()}&note= ( ) 然后用 g e t p a r a m e t e r (“ n i d ”)来接收 29 < c : f o r E a c h i t e m s = " {()} 然后用getparameter(“nid”)来接收 29 <c:forEach items=" ()然后用getparameternid)来接收29<c:forEachitems="{NewsList}" var=“n”></c:forEach>就是Java里面的增强for循环
30.渐变色background-image: linear-gradient(to right,greenyellow, palevioletred, deepskyblue, orange) ;
大致就是这些。**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值